题目描述

乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50。

现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度。

给出每段小木棍的长度,编程帮他找出原始木棍的最小可能长度。

输入输出格式

输入格式:

输入文件共有二行。

第一行为一个单独的整数N表示砍过以后的小木棍的总数,其中N≤65

(管理员注:要把超过50的长度自觉过滤掉,坑了很多人了!)

第二行为N个用空个隔开的正整数,表示N根小木棍的长度。

输出格式:

输出文件仅一行,表示要求的原始木棍的最小可能长度

输入输出样例

输入样例#1:

9
5 2 1 5 2 1 5 2 1
输出样例#1:

6

思路:
  大搜索;
  (思路来源:http://blog.csdn.net/chai_jing/article/details/52450419) 来,上代码:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std; int n,len[],cnt,maxlen,ans,Len,tot; bool if_[],if_re; bool dfs(int now,int le,int num)
{
if(num==tot+) return false;
if(le==)
{
if(num==tot) return true;
return dfs(,Len,num+);
}
for(int i=now+;i<=n;i++)
{
if(le-len[i]>=)
{
if(!if_[i])
{
if_[i]=true;
if(dfs(i,le-len[i],num)) return true;
if_[i]=false;
if(len[i]==le) break;
if(le==Len) break;
while(len[i+]==len[i]) i++;
}
}
}
return false;
} bool check(int lenth)
{
Len=lenth;
tot=cnt/lenth;
for(int i=;i<=n;i++) if_[i]=false;
return dfs(,Len-len[],);
} bool cmp(int a,int b)
{
return a>b;
} int main()
{
int n_,pos;
scanf("%d",&n_);
for(int i=;i<=n_;i++)
{
scanf("%d",&pos);
if(pos<=)
{
maxlen=max(pos,maxlen);
len[++n]=pos,cnt+=pos;
}
}
sort(len+,len+n+,cmp);
for(int i=maxlen;i<=cnt;i++)
{
if(cnt%i==&&check(i))
{
ans=i;
break;
}
}
cout<<ans;
return ;
}

最新文章

  1. [NHibernate]O/R Mapping基础
  2. js 的一点用法
  3. jquery基础总结
  4. UITextField属性
  5. 【T-SQL系列】临时表、表变量
  6. jackson annotations注解详解 (zhuan)
  7. A. Fox and Box Accumulation
  8. [BigData]关于Hadoop学习笔记第三天(PPT总结)(一)
  9. 《C专家编程》读书笔记
  10. Activity的学习
  11. Android扩展 - 拍照篇(Camera)
  12. 服务器编程入门(4)Linux网络编程基础API
  13. IOC(控制反转)
  14. pwnable.kr-collision -Writeup
  15. Nginx安装、平滑升级与虚拟机配置
  16. CTF---安全杂项入门第三题 这是捕获的黑客攻击数据包,Administrator用户的密码在此次攻击中泄露了,你能找到吗?
  17. VS下WPF自定义控件的基本步骤和基本代码实现
  18. python入门学习笔记(一)
  19. 基础篇 - SQL 的约束
  20. Json对象遍历

热门文章

  1. Linux菜鸟起飞之路【八】文本编辑器
  2. 根据参数优化nginx的服务性能
  3. Tourists Gym - 101002I LCA——dfs+RMQ在线算法
  4. HTTP认证之基本认证——Basic(二)
  5. 为工程添加上下文菜单(ContextMenu)
  6. python面试题解析(前端、框架和其他)
  7. 令人惊叹的sublime text 3 插件
  8. 零基础学 JavaScript 全彩版 明日科技 编著
  9. 老男孩全栈python学习进程表
  10. matlab 画图进阶