本题其实是经典(完全)背包问题的一个变种,只不过需要处理一下B[i]。设dp[i]为花费i所得糖果最大值。根据题目,共有n堆礼物,买k个第i堆礼物获得糖果A[i] * k + B[i] (k > 0),每堆礼物数不限。我们可以把每一堆礼物中的每一个礼物单独看成一堆。那么一共有无穷堆共k组礼物。bel...
分类:
其他好文 时间:
2015-08-21 23:07:24
阅读次数:
226
题意:
给你两个字符串s和t,你可以在字符串s中任意选一个字符c,在该字符c后插入一个字符d(d!=c),问经过多次此操作,能否将字符串s转化成字符串t。
解析:
不要想太复杂了,分情况讨论清楚就好了。
1. 如果|s|>|t||s| > |t|,那么无论怎么组合都是无法构成t的。
2. 如果s[0]!=t[0]s[0] != t[0],无论怎么组合,也都是无法构成t的。...
分类:
其他好文 时间:
2015-08-21 21:36:10
阅读次数:
135
题意简化一下就是一个序列,找出两个最大不下降子序列使得他们的长度和最长。= =作为一个DP渣,状态设计大概也就到了dp[i][j]表示第一个人最后一次取到i,第二个人取到j这个地方了。。怎么在可行复杂度内转移?不会啊望天。。其实作为图论工作者第一反应是费用流,但是边数太多了没敢搞= =然而其实费用流...
分类:
移动开发 时间:
2015-08-21 21:20:38
阅读次数:
161
题目传送门题意:求LCM(C(N,0),C(N,1),...,C(N,N)),LCM是最小公倍数的意思,C函数是组合数。分析:先上出题人的解题报告 好吧,数论一点都不懂,只明白f (n + 1)意思是前n+1个数的最小公倍数,求法解释参考HDOJ 1019,2028这个结论暂时不知道怎么推出来...
分类:
其他好文 时间:
2015-08-21 21:14:19
阅读次数:
138
题意:一个联通的无向图, 对于每一条边, 若删除该边后存在两点不可达,则输出这两个点, 如果存在多个则输出第一个点尽可能大,第二个点尽可能小的。 不存在输出0 0首先 若删除某一条边后存在多个联通分量则该边一定是桥, 那么我们可以先处理出所有的桥,然后把所有双联通分量缩点,缩点之后就变成了一棵树。而...
分类:
移动开发 时间:
2015-08-21 21:12:36
阅读次数:
242
题意:输入n,求c(n,0)到c(n,n)的所有组合数的最小公倍数。输入:首行输入整数t,表示共有t组测试样例。每组测试样例包含一个正整数n(1 2 #include 3 #include 4 #include 5 using namespace std; 6 7 #define LL lo...
分类:
其他好文 时间:
2015-08-21 19:03:32
阅读次数:
148
1.题目描述:点击打开链接
2.解题思路:本题要求LCM(C(n,0), C(n,1),..., C(n,n)),官方题解是转化为求解LCM(1,2,3,...n+1)/(n+1),然而这种做法还是觉得太陌生,不妨试着用学过的唯一分解定理去做。
首先,求这n+1个数的LCM,实际上就是求所有小于n的素数中,对于每一个素数Pi,哪一项的指数最大,然后把他们连乘起来即可得到LCM值。因此,...
分类:
其他好文 时间:
2015-08-21 17:16:51
阅读次数:
144
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5411
题意:按题目转化的意思是,给定N和M,再给出一些边(u,v)表示u和v是连通的,问走0,1,2.....M步的方案数。
分析:这题和 hdu5318 The Goddess Of The Moon差不多,就是多了一个等比数列求和。
代码:
#include
#include
#inclu...
分类:
其他好文 时间:
2015-08-21 17:14:53
阅读次数:
143
题目地址:HDU 5410
题意:有M元钱,N种礼物,若第i种礼物买x件的话,会有Ai*x+Bi颗糖果,现给出每种礼物的单价、Ai值与Bi值,问最多能拿到多少颗糖果。
思路:完全背包问题。
dp[j][1]在当前物品时花钱为j的并且买过当前物品的最大值。
dp[j][0]不买当前这件物品此前花钱为j的的最大值。
每种物品的价值随Ai线性变化,但是不随B[i]线性变化,B[i]仅是在第一次挑...
分类:
其他好文 时间:
2015-08-21 17:11:39
阅读次数:
158
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5416
题意:定给一棵树,有N-1条边,每条边有一个权值,查询两个点u到v的异或和为s的路的条数(u可以等于v)。
分析:预处理出所有的顶点到root的异或和,然后对于每次查询枚举起点就行了。
代码:
#include
#include
#include
#include
using nam...
分类:
其他好文 时间:
2015-08-21 15:49:15
阅读次数:
162