POJ 1564 Sum It Up
来源:互联网 发布:linux shell rm rf 编辑:程序博客网 时间:2024/05/21 08:46
简单DFS。搜一下某个数由那些加起来的。注意判重。
#include<cstdio>#include<cstring>int sum,n,a[10001];int vis[10001],ok;int ck[10001],top=0;int check(int ans){ int i; for(i=0;i<top;i++) if(ck[i]==ans)return 0; ck[top++]=ans;return 1;}int dfs(int s,int j){ int i; if(s==sum) { int o=0;ok=1; int num=0,j=1; for(i=0;i<n;i++) { if(vis[i]) num=num+a[i]*j,j++; } if(!check(num))return 0; for(i=0;i<n;i++) { if(vis[i]&&!o)printf("%d",a[i]),o=1; else if(vis[i])printf("+%d",a[i]); } printf("\n"); } else { for(i=j;i<n;i++) if(s+a[i]<=sum&&!vis[i]) vis[i]=1,dfs(s+a[i],i+1),vis[i]=0; }}int main(){ int i; while(scanf("%d%d",&sum,&n),sum!=0,n!=0) { memset(vis,0,sizeof(vis)); for(i=0;i<n;i++) scanf("%d",&a[i]); printf("Sums of %d:\n",sum); ok=0;top=0;dfs(0,0); if(!ok)printf("NONE\n"); }}
0 0
- POJ 1564 - Sum It Up
- poj 1564 Sum It Up
- poj 1564 Sum It Up
- POJ 1564 Sum It Up
- POJ-1564-Sum It Up
- poj 1564 Sum It Up
- POJ 1564 Sum It Up
- POJ 1564 Sum It Up
- POJ 1564 Sum It Up
- poj 1564 Sum It Up
- Poj 1564 Sum It Up
- poj 1564 Sum It Up
- Poj Sum It Up
- poj sum it up
- poj sum it up
- POJ 1564 Sum It Up dfs
- poj 1564 Sum It Up -- DFS 递归
- POJ 1564 Sum It Up(DFS)
- JAVAFX 合并表头
- Ubuntu 12.04 LTS 安装 Nginx 1.6.0
- 林宥嘉发声明讽邓紫棋没智慧 主动提分手
- poj1401
- elasticsearch安装配置
- POJ 1564 Sum It Up
- 习惯
- SpringMVC+Quartz配置定时任务
- 浅谈EasyUI的使用
- sqlite之我见--C/C++ API接口示例 .
- 基于Local Search的直线匹配算法
- jquery对信息进行排序操作
- 物联网15年,盘点国内崛起的智能产业
- 四翼---MPU6050