博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj1564
阅读量:6261 次
发布时间:2019-06-22

本文共 1747 字,大约阅读时间需要 5 分钟。

dfs,x的范围似乎不是100而是1000

View Code
//zoj1711#include 
#include
#include
#include
using namespace std;const int maxnum = 1001, maxn = 12;int t, n, sum[maxnum], number[maxn][2], answer[maxn], total;bool found;void init(){ int i, x; memset(sum, 0, sizeof(sum)); memset(answer, 0, sizeof(answer)); found = false; total = 0; for (i = 0; i < n; i++) { cin >> x; sum[x]++; } for (i = 1000; i >= 1; i--) if (sum[i] > 0) { number[total][0] = i; number[total][1] = sum[i]; total++; }}void print(){ int i, j; bool first = true; if (!found) { found = true; cout << "Sums of " << t << ":\n"; } for (i = 0; i < n; i++) for (j = 1; j <= answer[i]; j++) if (first) { cout << number[i][0]; first = false; } else { cout << "+" << number[i][0]; } cout << endl;}void make(int temp, int space){ int i; if (space == 0) { print(); return; } if (temp == total) return; for (i = number[temp][1]; i >= 0; i--) if (space - i * number[temp][0] >= 0) { answer[temp] = i; make(temp + 1, space - i * number[temp][0]); } answer[temp] = 0;}int main(){ //freopen("t.txt", "r", stdin); while (cin >> t >> n, n | t) { init(); make(0, t); if (!found) { cout << "Sums of " << t << ":\n"; cout << "NONE\n"; } } return 0;}

 

转载于:https://www.cnblogs.com/rainydays/archive/2013/03/26/2983203.html

你可能感兴趣的文章
Arcengine设置坐标系(转载)
查看>>
php字符串操作集锦
查看>>
【WPF】C#代码动态改变控件的样式
查看>>
P1115 最大子段和
查看>>
【翻译自mos文章】检查$ORACLE_HOME是否是RAC的HOME的方法以及relink RAC的Oracle binary的方法...
查看>>
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
查看>>
php max_execution_time执行时间问题
查看>>
Hystrix系列-5-Hystrix的资源隔离策略
查看>>
005-ant design -结合echart
查看>>
TCP交互数据流 成块数据流
查看>>
位置+推荐
查看>>
PEP python enhanced prposals
查看>>
retools 0.1 : Python Package Index
查看>>
python模块——logging 这篇讲得比较能懂
查看>>
【017】◀▶ C#学习(九) - ADO.NET
查看>>
English
查看>>
解剖SQLSERVER 第二篇 对数据页面头进行逆向(译)
查看>>
ZeroMQ接口函数之 :zmq_bind - 绑定一个socket
查看>>
数据库产生的背景
查看>>
python XML
查看>>