poj1564解题报告
来源:互联网 发布:深圳软件培训哪家好 编辑:程序博客网 时间:2024/06/05 03:22
第一次写博客,而且是组长强制要求,赶出来的,可能有含糊的地方,但是我会以后再认真分享我的心得的;;
题意:就是给定一个n,还有m个数,看看由m个数中任选相加为n的数以特定格式输出;;
思路:DFS;;;;;但是具体有个东西要注意,那就是要从短到长,从大到小输出,所以,先选大数再选小数,而给出的数是从大到小,所以也不用排序了;;
注意:1.要从大到小,
2.注意每个数字可以不用,或者最多用一次;
附上AC代码
#include<stdio.h>#include<string.h>int N,T;int flag=0;int n[15];int temp[15];void put(){ memset(temp,0,sizeof(temp)); flag=0; scanf("%d%d",&T,&N); for(int i=0;i<N;i++) scanf("%d",&n[i]);}void dfs(int x,int y,int z){ if (x==0) { flag=1; for(int i=0;i<z;i++) { if(i!=z-1) printf("%d+",temp[i]); else printf("%d\n",temp[i]); } return ; } for(int i=y;i<N;i++) { if(x-n[i]>=0) { temp[z]=n[i]; dfs(x-n[i],i+1,z+1); } while(n[i]==n[i+1]) { i++; } }}int main(){ while(1) { put(); if(N==0) break; printf("Sums of %d:\n",T); dfs(T,0,0); if(flag==0) { printf("NONE\n"); continue; } }}
0 0
- poj1564解题报告
- poj1564
- poj1564
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- Antiprime解题报告
- expr解题报告
- 华容道解题报告
- tju解题报告
- zju1062/pku1095解题报告
- UsacoGate解题报告 --- 序曲
- ZJU 2060 解题报告
- ZJU 1331 解题报告
- 如何从Eclipse导入github上的项目源码
- ListView 添加长度样式不固定的分割线
- C中#if 0 和#if 1
- ActiveRecord模式
- automake使用实例
- poj1564解题报告
- AngularJS 2.0会有哪些新特性?
- struct 结构体的定义及初始化问题
- Python lmdb
- 锯齿波 OP 积分电路
- iOS开发之静态库.a的制作教程
- Oracle 自动备份脚本
- Java程序员从笨鸟到菜鸟之(一)开发环境搭建,基本语法,字符串,数组
- 通透Gson@Expose注解、@SerializedName、解析json数据