时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 黄金 Gold
 
 
 
题目描述 Description

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

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

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

输入描述 Input Description

输入文件共有二行。

第一行为一个单独的整数N表示看过以后的小木柜的总数,其中N≤60,第二行为N个用空个隔开的正整数,表示N跟小木棍的长度。

输出描述 Output Description

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

样例输入 Sample Input

9

5 2 1 5 2 1 5 2 1

样例输出 Sample Output

6

数据范围及提示 Data Size & Hint

N<=60

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define MAXN 62
using namespace std;
int a[MAXN],vis[MAXN];
int n,num,sum;
void dfs(int x,int aum,int k,int fr){
if(k==x) k=;
if(sum-aum==){ cout<<x<<endl; exit(); }
if(sum-aum<x&&k==||sum-aum<a[n]) return ;
for(int i=fr;i<=n;i++){
if(!vis[i]&&k+a[i]<x){
vis[i]=;
dfs(x,aum+a[i],k+a[i],i+);
vis[i]=;
}
else if(!vis[i]&&k+a[i]==x){
vis[i]=;
dfs(x,aum+a[i],k+a[i],);
vis[i]=;
}
} }
int cmp(int a,int b){
return a>b;
}
int main(){
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
sum+=a[i];num=max(num,a[i]);
}
sort(a+,a++n,cmp);
for(int i=num;i<=sum;i++)
if(sum%i==)
dfs(i,,,);
}
/*
7
63 2 44 12 60 35 60
*/

80

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define MAXN 62
using namespace std;
int a[MAXN],f[MAXN];
int n,num,sum;
bool dfs(int now,int s){
if(s<) return ;
f[now]=;
if(s==) return ;
for(int i=now-;i>=;i--)
if(f[i]&&dfs(i,s-a[i])) return ;
f[now]=;
return ;
}
bool check(int x,int tot){
memset(f,,sizeof(f));
for(int i=;i<=tot;i++)
if(!dfs(n+,x)) return ;
return ;
}
int main(){
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
sum+=a[i];num=max(num,a[i]);
}
sort(a+,a++n);
for(int i=num;i<=sum;i++)
if(sum%i==&&check(i,sum/i)){
cout<<i<<endl;
return ;
}
}
/*
7
63 2 44 12 60 35 60
*/

codevs 3498 小木棍的更多相关文章

  1. 小木棍 (codevs 3498)题解

    [问题描述] 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过100. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小木棍的长 ...

  2. 洛谷P1120小木棍[DFS]

    题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小木棍的长度,编 ...

  3. 洛谷P1120 小木棍

    洛谷1120 小木棍 题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50.     现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长 ...

  4. P1120 小木棍 [数据加强版] 回溯法 终极剪枝

    题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过5050. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小木棍的长度 ...

  5. 洛谷 P1120 小木棍 [数据加强版]解题报告

    P1120 小木棍 [数据加强版] 题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它 ...

  6. 题解 P1120 【小木棍 [数据加强版]】

    题面 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小木棍的长度,编程帮 ...

  7. [Luogu P1120]小木棍·加强版

    #\(\mathcal{Description}\) 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过 \(50\) . 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开 ...

  8. P1120 小木棍 [数据加强版]

    题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小木棍的长度,编 ...

  9. CodeVs.2370 小机房的树 ( LCA 倍增 最近公共祖先)

    CodeVs.2370 小机房的树 ( LCA 倍增 最近公共祖先) 题意分析 小机房有棵焕狗种的树,树上有N个节点,节点标号为0到N-1,有两只虫子名叫飘狗和大吉狗,分居在两个不同的节点上.有一天, ...

随机推荐

  1. P1118 [USACO06FEB]数字三角形Backward Digit Su…

    题目描述 FJ and his cows enjoy playing a mental game. They write down the numbers from 1 to N (1 <= N ...

  2. url传值的长度限制解决办法

    今天写到两个页面传值,刚开始通过url上加参数进行传值, var strLink = "my.asp?str1=" + str1List + "&str2=&qu ...

  3. ES6扩展运算符的使用

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. 洛谷 P2341 [HAOI2006]受欢迎的牛

    题目描述 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的.奶牛之间的“喜欢”是可以传递的——如果A喜 欢B,B喜欢C,那么A也喜欢C ...

  5. JSP的有哪些内置对象,作用分别是什么?

    request:表示HttpServletRequest对象,它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie,header和session数据的有用方法: response:表示Ht ...

  6. template or render function not defined.

    template or render function not defined. H_婷 关注 2018.08.16 17:22 字数 106 阅读 3859评论 0喜欢 2 下午写 Vue $par ...

  7. vue 写一个聊天工具

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. CAD参数绘制实心圆弧填充(网页版)

    js中实现代码说明: function DrawPathToHatch1() { //把路径的开始位置移动指定的点 //参数一为点的X坐标 ,参数二为点的Y坐标,参数三为该点处开始宽度,对Polyli ...

  9. iOS视频通话方案

    现在iPhone4平台上实时音视频对话已取得初步成果.其间查阅了很多资料,感谢这些信息的提供者.继往开来,我写下此文.我只列出要点,具体编码以及平台移植各位自己去努力吧.照着下面的步骤,您一定能做出来 ...

  10. cacheStorage缓存及离线开发

    案例地址:https://zhangxinxu.github.io/https-demo/cache/start.html 我们直接看一个例子吧,如下HTML和JS代码: <h3>一些提示 ...