UESTC_吴队长征婚 2015 UESTC Training for Search Algorithm & String<Problem E>
E - 吴队长征婚
Time Limit: 10000/4000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others)
吴队长征婚这件事因为请客而没有传出去(虽然他忘了请一个队吃饭),于是吴队长高兴地玩起了木棒。吴队长拿了一些长度相同的木(guang)棒(gun),随机的把它们截成了N段,每一段最长50。现在他想把这些木棒还原成原来的状态,但是他忘记了原来的木棒有多少根,也忘记了每一根有多长
。请帮助他设计一个程序,帮他计算之前木棒可能的最小长度。输入数据保证每一段木棒长度都大于0。
Input
输入有多组数据,每组数据分为两行。
第一行一个整数N,表示截断之后木棒的个数。1≤N≤64
第二行N个整数,表示截断之后的每一段小木棒的长度。 当N=0时,表示输入结束。
Output
每组数据输出一个整数占一行,表示原木棒可能的最小长度。
Sample input and output
Sample Input | Sample Output |
---|---|
9 |
6 |
解题报告:
先对木棒进行降序排序
我们设计几个剪枝:
1.每截木棒肯定是和的约数
2.若正在拼某截的第一段,而此时最大的木棒用不上,直接回溯
3.若拼完某截木棍后,剩下的无法拼成,直接回溯
4.若该木棍用不上,之后所有长度相同的木棍也用不上
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
int tn,tlen,len[],n;
bool use[]; bool cmp(int x,int y)
{
return x > y;
} bool dfs(int cur,int res,int pos)
{
if (res == tlen)
{
res = ;
pos = ;
cur ++;
}
if (cur == tn)
return true;
for(int i = pos;i < n ; ++ i)
if (!use[i] && res + len[i] <= tlen)
{
use[i] = true;
if (res + len[i] == tlen)
{
if (!dfs(cur+,,))
{
use[i] = false;
return false;
}
return true;
}
else
{
if (dfs(cur,res+len[i],i+))
return true;
use[i] = false;
if (res == )
return false;
for(int j = i + ; j < n ; ++ j)
if(len[i] == len[j])
i++;
}
}
return false;
} int main(int argc , char * argv[])
{
while(scanf("%d",&n) && n)
{
int sum = ;
for(int i = ; i < n ; ++ i)
{
scanf("%d",&len[i]);
sum += len[i];
}
memset(use,false,sizeof(use));
sort(len,len+n,cmp);
int ok = ;
for(int i = len[] ; i <= sum / ; ++ i)
if (sum % i == )
{
tn = sum / i;
tlen = i;
if(dfs(,,))
{
cout << i << endl;
ok = ;
break;
}
}
if(!ok)
cout << sum << endl;
}
return ;
}
UESTC_吴队长征婚 2015 UESTC Training for Search Algorithm & String<Problem E>的更多相关文章
- UESTC_王之迷宫 2015 UESTC Training for Search Algorithm & String<Problem A>
A - 王之迷宫 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit ...
- UESTC_韩爷的梦 2015 UESTC Training for Search Algorithm & String<Problem N>
N - 韩爷的梦 Time Limit: 200/100MS (Java/Others) Memory Limit: 1300/1300KB (Java/Others) Submit Stat ...
- UESTC_秋实大哥の恋爱物语 2015 UESTC Training for Search Algorithm & String<Problem K>
K - 秋实大哥の恋爱物语 Time Limit: 5000/2000MS (Java/Others) Memory Limit: 32000/32000KB (Java/Others) Su ...
- UESTC_全都是秋实大哥 2015 UESTC Training for Search Algorithm & String<Problem J>
J - 全都是秋实大哥 Time Limit: 5000/2000MS (Java/Others) Memory Limit: 32000/32000KB (Java/Others) Subm ...
- UESTC_基爷的中位数 2015 UESTC Training for Search Algorithm & String<Problem D>
D - 基爷的中位数 Time Limit: 5000/3000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submi ...
- UESTC_基爷与加法等式 2015 UESTC Training for Search Algorithm & String<Problem C>
C - 基爷与加法等式 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Subm ...
- UESTC_邱老师降临小行星 2015 UESTC Training for Search Algorithm & String<Problem B>
B - 邱老师降临小行星 Time Limit: 10000/5000MS (Java/Others) Memory Limit: 65536/65535KB (Java/Others) Su ...
- UESTC_Palindromic String 2015 UESTC Training for Search Algorithm & String<Problem M>
M - Palindromic String Time Limit: 3000/1000MS (Java/Others) Memory Limit: 128000/128000KB (Java ...
- UESTC_Ferris Wheel String 2015 UESTC Training for Search Algorithm & String<Problem L>
L - Ferris Wheel String Time Limit: 3000/1000MS (Java/Others) Memory Limit: 43000/43000KB (Java/ ...
随机推荐
- 【转】ubuntu安装ftp服务器
原文网址:https://wiki.archlinux.org/index.php/Very_Secure_FTP_Daemon_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96% ...
- libeXosip2(1-1) -- How-To initialize libeXosip2.
How-To initialize libeXosip2. The eXtented eXosip stack Initialize eXosip and prepare transport laye ...
- unix c 06
文件操作 fcntl-> 复制文件描述符/取文件状态/文件锁 文件一系列函数-> access/chmod/truncate/... 目录操作 相关函数:mkdir/rmdir/telld ...
- UVa10653.Prince and Princess
题目连接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- [转]Google2012.9.24校园招聘会笔试题
代码: [cpp] view plaincopy //转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/8017703 boo ...
- QT 4.7支持中文(QT4.7)(中文)(makeqpf)
QT 4.7支持中文(QT4.7)(中文)(makeqpf) 摘要: QT4.7.0在移植到开发板上的时候,中文支持是必不可少的,如何让QT支持中文,如何制作QT支持的字体文件,如何使QT UI编辑器 ...
- MongoDB 数据库安装
首先在官网上下载数据库:官网上提供了两种形式的数据库,一种是免安装版的,一种是安装版的.这点跟apache的tomcat类似,安装版的有可视化的界面对服务进行启动和关闭,可是还是比較喜欢免安装的.不解 ...
- 如何在WP8模拟器中连接本地的web服务
这个问题困扰了很久,查找答案一度找偏方向. 其实连接web服务对于wp7不是问题,因为wp7使用的网络就是本机的网络,但是到了wp8模拟器,纯粹的虚拟机,独立的设备,也就有了自己的网络连接,要当做虚拟 ...
- orcl 行转列的存储过程
CREATE or replace PROCEDURE sp_fixWage AUTHID CURRENT_USER as --此处需要注意的 authid current_user 这个属性 详细 ...
- UITableView总忘记的
因为总是忘记所以记一下 1.scrollToRowAtIndexPath QQ会话中总是希望添加一行就向上滚动总是显示最新的消息 NSIndexPath *lastIndexPath = [NSInd ...