随笔分类 -  ACM_母函数

摘要:/*http://acm.hdu.edu.cn/showproblem.php?pid=2079简单的母函数题目;开始把题目看错,以为个相同学分的不同科目是算不同的;后来发现是相同的;如果是不同的,那结果很大;当然这是我审题错误;*/#include #include #include #include #include #include #include int g[9],la[55],lb[55]; using namespace std; int main(int argc, char *argv[]) { int t,n,k,a,b; cin>>t; while(... 阅读全文
posted @ 2013-03-07 19:01 简洁是智慧的灵魂 阅读(138) 评论(0) 推荐(0)
摘要:/*可以用母函数解决;前几天练熟了,再试试手;*/http://acm.hdu.edu.cn/showproblem.php?pid=2082#include #include #include #include #include #include #include #define maxn 1005 using namespace std; int main(int argc, char *argv[]) { int word[27],a[55],b[55]; int n; cin>>n; while(n--) { for(int i = 0; i >word[... 阅读全文
posted @ 2013-03-06 22:07 简洁是智慧的灵魂 阅读(146) 评论(0) 推荐(0)
摘要:/*母函数题;只是限定了一些范围,加上就可以了;http://acm.hdu.edu.cn/showproblem.php?pid=2152*/#include using namespace std; #define maxn 105 int a[maxn],b[maxn],minum[maxn],maxnum[maxn]; int main() { int n,m; while(cin>>n>>m) { for(int i = 0; i >minum[i]>>maxnum[i]; } memset(a,0,sizeof(a)); memset(b, 阅读全文
posted @ 2013-03-03 18:20 简洁是智慧的灵魂 阅读(122) 评论(0) 推荐(0)
摘要:/*题目:给出一定(n)数量的砝码,每个砝码重a1,a2,a3。。。an,问题:求出【1~sum】中(sum为各砝码总和)不能被称出的重量;问题关键:天平两边都可以放砝码,放在同一端:a[j+k]+=a[j]不同端a[abs(j-k)]+=a[j] 假设原来的砝码都放在右端,则可以把新加的砝码放在左端,得到新重量,此时a[abs(j-k)]+=a[j]。http://acm.hdu.edu.cn/showproblem.php?pid=1709点击打开链接*/#include #include #include using namespace std;#define maxn 101in... 阅读全文
posted @ 2013-03-03 17:06 简洁是智慧的灵魂 阅读(124) 评论(0) 推荐(0)
摘要:/*题目意思是:硬币种类有1^2,2^2,3^2,4^2...17^2,这几种;输入n;求出能够组合成n的组合有多少种;与hdu1028相似,只是将原来的1,2,3,4,……换成了1^2,2^2,3^2,4^2...…,题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1398*/#include #include using namespace std; int a[305],b[305]; int main() { int n; int c[18]; for(int i = 0; i >n&&n!=0) { ... 阅读全文
posted @ 2013-03-02 18:16 简洁是智慧的灵魂 阅读(169) 评论(0) 推荐(0)
摘要:/*注意题目要求,1,输入0,结果12,方案中硬币不超过100;与hdoj 1028不同在于有限定100,数组需要多加一维;*/http://acm.hdu.edu.cn/showproblem.php?pid=2069#include #include using namespace std; int a[255][105],b[255][105]; int main() { int n; int c[5] = {1,5,10,25,50}; while(cin>>n) { if(n==0) { puts("1"); ... 阅读全文
posted @ 2013-03-02 15:09 简洁是智慧的灵魂 阅读(139) 评论(0) 推荐(0)
摘要:/* 先初始化,再一个一个来;注意i,j,k范围的变化;参考大牛资料母函数(Generating function)详解 — TankyWoo*/#include using namespace std; int a[10005],b[10005]; int main() { int num1,num2,num3; while(cin>>num1>>num2>>num3) { if(num1==0&&num2==0&&num3==0) { break; } int sum = num1*1 + num2*2 + num3*5; 阅读全文
posted @ 2013-03-02 14:02 简洁是智慧的灵魂 阅读(181) 评论(0) 推荐(0)
摘要:/*初学母函数,练练手;*/母函数解:/* 求整数n的整数拆分方法; 题目理解为:将数字1、2、3、……n;每个数字可以选取无限次,求能组成n的情况总数 函数 (1+x+x^2+x^3……)(1+x^2+x^4……)(1+x^3+x^6+x^9……) …… 第一项的意义是:取0个1,取1个1、2个1,3个1……第二项的意义是:取0个2,取1个2…… 以此类推 ; 每个括号为一个大项,我们先将第一大项和第二大项乘起来,得到结果和第三项相乘…… 以此类推; */ #include using namespace std; int a[200],b[200]; //a[]存放... 阅读全文
posted @ 2013-03-01 20:37 简洁是智慧的灵魂 阅读(164) 评论(0) 推荐(0)