hdu 2566 暴力枚举+母函数
来源:互联网 发布:antlr sql解析 github 编辑:程序博客网 时间:2024/06/06 01:26
Problem Description
假设一堆由1分、2分、5分组成的n个硬币总面值为m分,求一共有多少种可能的组合方式(某种面值的硬币可以数量可以为0)。
Input
输入数据第一行有一个正整数T,表示有T组测试数据;
接下来的T行,每行有两个数n,m,n和m的含义同上。
Output
对于每组测试数据,请输出可能的组合方式数;
每组输出占一行。
Sample Input
2
3 5
4 8
Sample Output
1
2
题解:
n-i-j可能会出现负数,wrong answer了一次。还是太菜了。
暴力枚举即可。第二种母函数后贴上。
代码:
#include <bits/stdc++.h>using namespace std;/*注意n-i-j可能出现负数*/int main(){ int T; cin>>T; while(T--) { int n,m; cin>>n>>m; int ans=0; for(int i=0;i<=m/5;i++) for(int j=0;j<=m/2;j++) { int k = n-i-j; if((i*5+j*2+k)==m&&k>=0) ans++; } cout<<ans<<endl; } return 0;}
母函数法
#include <bits/stdc++.h>using namespace std;int c1[1010][1010];int c2[1010][1010];int val[4]={0,1,2,5};int main(){ memset(c1,0,sizeof(c1)); memset(c2,0,sizeof(c2)); int i,j,k,l; for(i=0;i<=1000;i++) { c1[i][i]=1; } for(i=2;i<=3;i++) { for(j=0;j<=1000;j++) for(k=0;k+j<=1000;k+=val[i]) for(l=0;l+k/val[i]<=1000;l++) c2[k+j][l+k/val[i]]+=c1[j][l]; for(k=0;k<=1000;k++) for(l=0;l<=1000;l++) { c1[k][l]=c2[k][l]; c2[k][l]=0; } } int T; cin>>T; int n,m; while(T--) { cin>>n>>m; cout<<c1[m][n]<<endl; } return 0;}
阅读全文
0 0
- hdu 2566 暴力枚举+母函数
- hdu 2069 母函数(一) 抑或 暴力枚举
- hdu 3332 暴力枚举
- HDU 3823 暴力枚举
- hdu 3720 暴力枚举
- hdu 5024 暴力枚举
- hdu 4445 暴力枚举
- HDU 4007 暴力枚举
- hdu 5128 暴力枚举
- hdu 5228 暴力枚举
- hdu 5339 暴力枚举
- HDU 5610 暴力枚举
- hdu 5660 暴力枚举
- HDU-1015/暴力枚举
- hdu 5143 暴力枚举
- HDU 1172 暴力枚举
- HDU-5578-暴力枚举
- hdu-4445 暴力枚举
- 【Java学习笔记】之println打印数组
- 高可用架构之分布式缓存
- Javaweb核心之Ajax&json
- Mybatis中oracle、mysql、db2、sql server的like模糊查询
- java关于文件常用的方法
- hdu 2566 暴力枚举+母函数
- springmvc执行流程非代码2
- CSU 1805 Tree Capitals(Matrix-Tree定理+Best定理)
- c++连接mysql
- gitlab docker镜像运行中css样式丢失
- BYTE,WORD,DWORD的大小及一些特殊的"高低位宏"
- jquery子元素过滤选择器:nth-child、:first-child、:last-child、:only-child
- 为什么匿名内部类参数必须为final类型
- 网易有道 1,2面