博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
4.3.5 Sticks (POJ1011)
阅读量:5339 次
发布时间:2019-06-15

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

Problem Description
George took sticks of the same length and cut them randomly until all parts became at most 50 units long. Now he wants to return sticks to the original state, but he forgot how many sticks he had originally and how long they were originally. Please help him and design a program which computes the smallest possible original length of those sticks. All lengths expressed in units are integers greater than zero.
 
Input
The input contains blocks of 2 lines. The first line contains the number of sticks parts after cutting, there are at most 64 sticks. The second line contains the lengths of those parts separated by the space. The last line of the file contains zero.
 
Output
The output file contains the smallest possible length of original sticks, one per line.
 
Sample Input
95 2 1 5 2 1 5 2 141 2 3 40
 
Sample Output
65

思路:dfs+强力剪枝,具体怎么做的我都记不得了,参考了别人的代码,才发现自己写的有多臭

#include 
#include
#include
#include
using namespace std;int sum=0,maxx,n,step,he,total;bool succ,f[66],flag,rec[66];int a[66];void close(){exit(0);}bool check(){for (int i=0;i
=0;j--) { if (not f[j]) { if (a[j]+tot==he) { f[j]=true; return true; f[j]=false; return false; } else if (a[j]+tot

 

转载于:https://www.cnblogs.com/cssystem/archive/2013/01/02/2842002.html

你可能感兴趣的文章
关于这次软件以及pda终端的培训
查看>>
jQuery上传插件Uploadify 3.2在.NET下的详细例子
查看>>
如何辨别一个程序员的水平高低?是靠发量吗?
查看>>
新手村之循环!循环!循环!
查看>>
线程安全问题
查看>>
下拉刷新
查看>>
linux的子进程调用exec( )系列函数
查看>>
MSChart的研究
查看>>
C# 索引器
查看>>
MySQLdb & pymsql
查看>>
zju 2744 回文字符 hdu 1544
查看>>
【luogu P2298 Mzc和男家丁的游戏】 题解
查看>>
前端笔记-bom
查看>>
MATLAB作图方法与技巧(一)
查看>>
上海淮海中路上苹果旗舰店门口欲砸一台IMAC电脑维权
查看>>
Google透露Android Market恶意程序扫描服务
查看>>
给mysql数据库字段值拼接前缀或后缀。 concat()函数
查看>>
迷宫问题
查看>>
【FZSZ2017暑假提高组Day9】猜数游戏(number)
查看>>
泛型子类_属性类型_重写方法类型
查看>>