- 博客(13)
- 资源 (1)
- 收藏
- 关注
转载 hdu 3466
题意:有N个物品,价格为p,但你想买的话手里的钱不能低于q,价值为w。给你M块钱,求得到的最大价值。分析:若没有限制条件的话,01背包很好解决,就是这个条件让这个问题很棘手!做了两天,搜了很多别人的题解,下面是个人的一点理解要想在限制条件下获得最大价值,要满足买了一件物品后尽量使剩下的钱最多,这样尽量满足下一个物品的限制条件!
2015-03-28 16:13:44 509
原创 A and B and Interesting Substrings cf294
题目连接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=72034#problem/D给定a-z每个字母代表的数字,求共有多少个X。定义X:X为子序列,且最后一个与第一个字母相同,且其代表总和为0,不包含头尾。Input 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 8 1 1 1
2015-03-19 18:14:36 535
原创 nyoj 136
题意:描述 有以下等式:a1*x13+a2*x23+a3*x33+a4*x43+a5*x53=0x1,x2,x3,x4,x5都就在区间[-50,50]之间的整数,且x1,x2,x3,x4,x5都不等于0.问:给定a1,a2,a3,a4,a5的情况下,x1,x2,x3,x4,x5共有多少种可能的取值?输入第一行输入一个整数T(T每组测试数据都只有一行,是5个整数,分表表示a1
2015-03-16 15:52:21 598
原创 nyoj 130 相同的雪花 || poj 3349 Snowflake Snow Snowflakes
题意:给定n片雪花(0 注意事项 1->雪花可以翻转、向左(右)移动,例如1 2 3 4 5 6 4 3 2 1 6 5 是符合的。2->直接枚举会超时,可以利用哈希表雪花离散化,不必一个一个查之前的雪花。3->先查找,确定该雪花不存在再把该雪花插入哈希表,有两种方案,第一,把每个雪花转六下,分别在哈希里面找,然后翻转,把每个雪花转六下,分别在哈希里面找,最后在两种状态插
2015-03-16 15:16:49 790
原创 poj 3903 stock exchange 最长上升子序列(n*log(n))
题目连接:http://poj.org/problem?id=3903题意:求最长上升子序列,n=100000思路:动态方程 d【i】=max(d【j】+1,【i】)(1a[j]),此方法在此行不通,timelimited(O(n*n))。 假设序列为a【0】,a【1】.......,如果ia[i]>a[j],但我们只需保存序列长度的为d【i】的最小值a【j】,
2015-03-12 13:39:15 462
原创 uva 11489
题目:给定一窜数字,两个人s,T两人轮流拿一个数字,s先拿,要求每次取完之后剩下的数应为3的倍数,不能取者输,如果先手胜,输出S,否则输出T思路:先把数字记录3的倍数,,非3的倍数两个部分, 如果总和能被3整除,那么S肯定先拿3的倍数,然后T也拿3的倍数,所以最后看mod3==0的个数,如果为奇数,那么S win。else 。。。。
2015-03-11 20:54:00 392
原创 dfs 求差值最小
题目详情:有n个人,m种技能,每个人学会某项技能都需要一定的时间。每个人可以选择一项感兴趣得技能学习。你的任务是,给每个人分配一个他学习的技能,使得学得最快的人和最慢的人的时间差距最小。输入格式:多组数据,每组数据第一行是两个整数n,m 0 输出格式:对每组数据输出一行,包含一个整数,表示最小差值。答题说明:输入样例3 42 4 5 8
2015-03-11 18:23:18 647
转载 poj 1185 炮兵阵地 状态压缩dp
这是我第一次写状态压缩dp,刚开始毫无思路,然后网上搜了一下,经过一整天最终才看懂思路,AC。首先,第i行与i-1行与第i-2有关(状态),于是假设dp【i】【j】=dp【i-1】【k】+状态j中炮兵的个数(i代表行,j代表改行的状态,dp值代表前i行最大炮兵值)发现这个不行,因为只与第i-1行有关,还得与第i-2行有关,于是我们就得增加维度d【i】【j】【k】,k代表第i-2行的状态,于是有
2015-03-07 15:00:58 427
原创 能量项链 hrbustoj 1376 区间dp
题意:类似于lrj白书中的矩阵链成,但唯一不同的是现在他是一个环,顺时针,而之前的是链,所以用循环dp,思路就是重新的给d【i】【j】(i>j)也赋予值,从i到j的最大值,之前就不存在这种情况(*****重点)。d[i][j]=max(d[i][j],d[i][k]+d[(k+1)%n][j]+a[i]*a[(k+1)%n]*a[(j+1)%n]);。题目:点击打开链接#include#
2015-03-06 16:27:17 428
原创 poj 1411 Brackets Sequence
题意:给定一串括号序列,找出包含此序列的长度最小的regularbrackets sequence,就是找出使每一对括号都成对出现的长度最小的序列分析:此问题可根据(2)(3)划分出更小的子序列http://hi.baidu.com/tifctu/blog/item/d7bbaadc40bbbf335882ddc4.html一个序列如果是AB形式的话,我们可以划分为A,B两个子
2015-03-06 12:33:37 530
原创 hdu 2045 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
多重背包 :情况1(数据较强).对于第i种物品能用完全背包(总钱数n#include#include#define max(a,b) a>b?a:bstruct node { int p; int h; int c;}a[110];int main(){ int i,j,k,n,m,t; int d[110]; scanf("%d",&t); while(t
2015-03-05 20:57:53 489
原创 hdu 2045 不容易系列之(3)—— LELE的RPG难题
这个题有两种思路可以考虑:1.把问题分解,不考虑首尾是否同色的是3*2^(n-1),答案就是在此基础上减去首尾相同的情况。那首尾相同是都少种呢?其实就是在元素有n-1个时再加入一个与首相同的尾。所以此题一定是用到了递归。公式为f[n]=3*2^(n-1)-f[n-1];代码如下:#include#includeint main(){ int i,j,k,m,n;
2015-03-05 16:38:07 414
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人