Loading [MathJax]/jax/output/HTML-CSS/jax.js

随笔分类 -  动态规划-背包dp

摘要:A.题意:求去掉d物品后容量为e最大背包。每个物品有三种属性,权值、容量、数量。#include using namespace std;const int V=1000, N=1005;void zop(int *d, int w, int v) { for(int i=V; i>=v; --i)... 阅读全文
posted @ 2015-04-26 07:32 iwtwiioi 阅读(252) 评论(0) 推荐(0) 编辑
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1004学习了下polya计数和burnside引理,最好的资料就是:《Pólya 计数法的应用》 --陈瑜希burnside:$$等价类的个数=\frac{1}{|G|}\sum_{i=1}^{s}D(... 阅读全文
posted @ 2014-11-22 11:45 iwtwiioi 阅读(918) 评论(0) 推荐(0) 编辑
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1025首先根据置换群可得=lcm{Ai,Ai},ki=1Ai=n
根据lcm的定义,分解质因数拆掉$A_i=p_1^{x_1} \time... 阅读全文
posted @ 2014-11-17 21:02 iwtwiioi 阅读(755) 评论(0) 推荐(0) 编辑
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1042一开始写了个O(nv)的背包,果断tle。。。看了题解,,好神。。用了组合数学中的多重集合方案的容斥原理。设Ai表示i超过d[i]的性质则我们要求:$$| \overline{A_1} \c... 阅读全文
posted @ 2014-11-13 17:34 iwtwiioi 阅读(476) 评论(0) 推荐(1) 编辑
摘要:来源:Violet_II T1好神的一题,我竟然没做出来QAQ首先我们发现,答案是sigma(x[i]*x[j], i>j)+sigma(y[i]*y[j], i>j)。显然只需要讨论左边的就行了,右边就可以同理了。我们发现sigma(x[i]*x[j], i>j)=(sigma(x[i])^2-s... 阅读全文
posted @ 2014-10-20 03:07 iwtwiioi 阅读(581) 评论(3) 推荐(0) 编辑
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2021噗,自己太弱想不到。原来是2次背包。由于只要有一个大于k的高度的,而且这个必须放在最顶,那么我们就可以枚举每一个比k大的放在最顶,其它的都放在下边即可。还有,注意这是完全背包!#include #... 阅读全文
posted @ 2014-09-16 05:53 iwtwiioi 阅读(523) 评论(0) 推荐(0) 编辑
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3400既然是倍数我们转换成mod。。设状态f[i][j]表示前i头牛modj的方案那么答案显然是f[n][0]其实这样就和背包差不多了,对于每个数但是转移比较难理解?(自己好好想吧。。)f[i][a%p... 阅读全文
posted @ 2014-09-14 17:49 iwtwiioi 阅读(604) 评论(0) 推荐(0) 编辑
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2020和背包差不多同样滚动数组f[j]表示当前位置j份食物的最小价值f[j]=min(f[j-l]+l*c) 1#include #include #include #include #include ... 阅读全文
posted @ 2014-09-14 16:32 iwtwiioi 阅读(372) 评论(0) 推荐(0) 编辑
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1655背包就没什么好说的了,裸的完全背包。。但是我一开始交开了ull都wa了T_T。。精度太大。。。。。打高精度吧。。#include #include #include #include #inclu... 阅读全文
posted @ 2014-09-10 12:57 iwtwiioi 阅读(359) 评论(0) 推荐(0) 编辑
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1673bzoj翻译过来的c#include #include #include #include #include #include using namespace std;#define rep(i,... 阅读全文
posted @ 2014-09-10 05:55 iwtwiioi 阅读(496) 评论(0) 推荐(0) 编辑
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1677完全背包很容易想到,将1,2,4...等作为物品容量即可。然后这题还有一个递推式f[i]==f[i-1], 当i%2==1f[i]==f[i-1]+f[i/2], 当i%2==0当i为奇数时,我们... 阅读全文
posted @ 2014-09-03 13:17 iwtwiioi 阅读(607) 评论(0) 推荐(0) 编辑
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1625太水了。#include #include #include #include #include #include using namespace std;#define rep(i, n) fo... 阅读全文
posted @ 2014-09-02 16:54 iwtwiioi 阅读(235) 评论(0) 推荐(0) 编辑
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1618裸的01背包,注意背包的容量不是v即可。#include #include #include #include #include #include using namespace std;#def... 阅读全文
posted @ 2014-09-02 13:57 iwtwiioi 阅读(403) 评论(0) 推荐(0) 编辑
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1606越来越水了T_T这题两种做法,一个正规01背包,价值就是体积还有一种是非正规背包,即if(f[j-v[i]]) f[j]=1然后从大向小扫出第一个f[i]==1的,i就是答案越来越水了啊。。#in... 阅读全文
posted @ 2014-09-01 13:29 iwtwiioi 阅读(229) 评论(0) 推荐(0) 编辑
摘要:关于背包DP的文章很多,谷歌百度搜《背包九讲》即可。本文章只放模版。文章统一v代表体积,w代表价值,f代表dp数组,V代表总体积,W代表总价值,均采用滚动数组。答案一般都为f[V]。01背包:void zop(int v, int w) { for(int i = V; i >= v; --i) ... 阅读全文
posted @ 2014-02-06 14:37 iwtwiioi 阅读(306) 评论(0) 推荐(0) 编辑
摘要:题目链接算法:01背包DP此题主要是预处理恶心。我提交了2次。。。第一次数组开小了。。。(体积要=V*10)注意:钱做为体积,美味价值作为价值注意,因为体积(钱)是小数点后1位,故数组下标无法表示体积(01背包),所以体积(钱)要扩大10倍作为01背包的体积还有因为有重复的,所以要去重再01代码:#... 阅读全文
posted @ 2014-01-02 02:12 iwtwiioi 阅读(173) 评论(0) 推荐(0) 编辑
摘要:题目链接算法:动态规划(01背包)01背包思想:依次对待某一物体,考虑是否放入容量为V的背包中用f[V]来表示容量为V的背包的最大价值,则决策是f[V] = max{f[V], f[V-v[i]]+w[i]}(0 = 0)解释:每一个物体i,只有两种选择,是否放入(放入后一定体积要等于容量V)容量为... 阅读全文
posted @ 2014-01-02 02:00 iwtwiioi 阅读(350) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示