POJ1564 ——Sum It Up
2012-08-18 17:07
351 查看
DFS搜索由大的数往小的数
View Code
View Code
#include <stdio.h> #include <string.h> int ans,n,a[1001]; int b[1010]; bool f; void dfs(int v,int t,int g) { int i; if(v==ans) { f = true; for(i=1;i<t-1;i++) printf("%d+",b[i]); printf("%d\n",b[t-1]); return; } for(i=g;i>=0;i--) { if(a[i]) { if(i+v > ans) continue; else { a[i]--; b[t] = i; dfs(i+v,t+1,i); a[i]++; } } } } int main(void) { int i,data; int maxx; while(scanf("%d %d",&ans,&n)!=EOF && (ans!=0 || n!=0)) { memset(a,0,sizeof(a)); maxx = -1; for(i=1;i<=n;i++) { scanf("%d",&data); if(data > maxx) maxx = data; a[data]++; } f = false; printf("Sums of %d:\n",ans); dfs(0,1,maxx); if(!f) printf("NONE\n"); } return 0; }
相关文章推荐
- poj 1564 Sum It Up
- POJ 1564 Sum It Up (DFS+剪枝)
- POJ_1564 Sum It Up(DFS)
- 【DFS】poj 1564 Sum It Up(hdu 1258)
- POJ 1564 Sum It Up -dfs(回溯法)
- poj 1564 Sum It Up DFS
- poj 1564 && zoj 1711 Sum It Up (dfs)
- ZOJ1711 POJ1564 Sum It Up,DFS+输出排序+去重复
- poj 1564 Sum It Up
- POJ 1564 Sum It Up (DFS+剪枝)
- zoj 1711 || poj 1564 Sum It Up(DFS~~~去重~)
- poj 1564 Sum It Up
- Sum It Up_poj1564_dfs+水
- POJ 1564 Sum It Up(DFS)
- poj 1564 Sum It Up | zoj 1711 | hdu 1548 (dfs + 剪枝 or 判重)
- POJ 1564--Sum It Up【DFS】
- poj 1564 Sum It Up
- POJ 1564 Sum It Up(DFS)
- poj 1564 Sum It Up (DFS+ 去重+排序)
- poj_1564Sum It Up