hdu/hdoj 1085 Holding Bin-Laden Captive!

发布时间:2016-12-9 17:37:29 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"hdu/hdoj 1085 Holding Bin-Laden Captive!",主要涉及到hdu/hdoj 1085 Holding Bin-Laden Captive!方面的内容,对于hdu/hdoj 1085 Holding Bin-Laden Captive!感兴趣的同学可以参考一下。

这个题暴力枚举会超时, 然后就是母函数解法,这里推荐一篇大神的母函数文章http://wenku.baidu.com/view/d0e5cc4433687e21af45a9a8.html 看了这篇文章,就应该懂母函数了 #include <iostream> using namespace std; int c1[10000], c2[10000]; int num[4]; int main() { int nNum; while(scanf("%d %d %d", &num[1], &num[2], &num[3]) && (num[1]||num[2]||num[3])) { int aa[4]={0,1,2,5}; int _max = num[1]*1+num[2]*2+num[3]*5; // 初始化 for(int i=0; i<=_max; ++i) { c1[i] = 0; c2[i] = 0; } for(int i=0; i<=num[1]; ++i) c1[i] = 1; for (int p=2; p<=3; ++p) { for(int i=0; i<=_max; ++i) for(int j=0; j<=num[p]*aa[p]&& j+i<10000; j+=aa[p]) c2[j+i] += c1[i]; for(int i=0; i<=_max; ++i) { c1[i] = c2[i]; c2[i] = 0; } } int i; for(i=0; i<=_max; ++i) if(c1[i] == 0) { printf("%d\n", i); break; } if(i == _max+1) printf("%d\n", i); } return 0; }

上一篇:WEB移动应用框架构想
下一篇:将旧的推送通知从通知中心移除掉

相关文章

相关评论