OpenJudge 2817:木棒 / Poj 1011 Sticks
1.链接地址:
http://bailian.openjudge.cn/practice/2817/
http://poj.org/problem?id=1011
2.题目:
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
- 乔治拿来一组等长的木棒,将它们随机地裁断,使得每一节木棍的长度都不超过50个长度单位。然后他又想把这些木棍恢复到为裁截前的状态,但忘 记了初始时有多少木棒以及木棒的初始长度。请你设计一个程序,帮助乔治计算木棒的可能最小长度。每一节木棍的长度都用大于零的整数表示。
- 输入
- 输入包含多组数据,每组数据包括两行。第一行是一个不超过64的整数,表示砍断之后共有多少节木棍。第二行是截断以后,所得到的各节木棍的长度。在最后一组数据之后,是一个零。
- 输出
- 为每组数据,分别输出原始木棒的可能最小长度,每组数据占一行。
- 样例输入
9
5 2 1 5 2 1 5 2 1
4
1 2 3 4
0- 样例输出
6
5- 来源
- POJ 1011
3.思路:
递归 + 剪枝
4.代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib> using namespace std; int cmp(const void *a,const void *b)
{
int ia = *((int *)a);
int ib = *((int *)b); return ib - ia;
} int k;
int L; bool f(int *sticks,int left_L,int left_n)
{ int i;
int flag = true; //cout<< "f(" << "," << left_L << "," << left_n << ")" <<endl;
//for(i = 0; i < k; ++i) cout << sticks[i] << " ";
//cout << endl; for(i = ; i < k; ++i)
{ if(sticks[i] != )
{
flag = false;
int temp;
if(sticks[i] == left_L)
{
temp = sticks[i];
sticks[i] = ;
if(f(sticks,L,left_n - )) return true;
sticks[i] = temp;
}
else if(sticks[i] < left_L)
{
temp = sticks[i];
sticks[i] = ;
if(f(sticks,left_L - temp,left_n)) return true;
sticks[i] = temp;
}
else continue; if(left_L == L || sticks[i] == left_L) break;//Less 1
}
} if(flag && left_n == ) return true;
else return false;
} int main()
{
//freopen("C://input.txt","r",stdin); int i; while(cin>>k)
{
if(k == ) break; int *sticks = new int[k];
memset(sticks,,sizeof(k)); for(i = ; i < k; ++i) cin >> sticks[i]; qsort(sticks,k,sizeof(int),cmp); int sum = ;
for(i = ; i < k; ++i) sum += sticks[i]; int n;
for(L = sticks[]; L <= sum; ++L)
{
if(sum % L != ) continue; n = sum / L;
if(f(sticks,L,n))
{
cout << L << endl;
break;
}
}
}
return ;
}
OpenJudge 2817:木棒 / Poj 1011 Sticks的更多相关文章
- 搜索+剪枝——POJ 1011 Sticks
搜索+剪枝--POJ 1011 Sticks 博客分类: 算法 非常经典的搜索题目,第一次做还是暑假集训的时候,前天又把它翻了出来 本来是想找点手感的,不想在原先思路的基础上,竟把它做出来了而且还是0 ...
- DFS(剪枝) POJ 1011 Sticks
题目传送门 /* 题意:若干小木棍,是由多条相同长度的长木棍分割而成,问最小的原来长木棍的长度: DFS剪枝:剪枝搜索的好题!TLE好几次,终于剪枝完全! 剪枝主要在4和5:4 相同长度的木棍不再搜索 ...
- POJ 1011 - Sticks DFS+剪枝
POJ 1011 - Sticks 题意: 一把等长的木段被随机砍成 n 条小木条 已知他们各自的长度,问原来这些木段可能的最小长度是多少 分析: 1. 该长度必能被总长整除 ...
- POJ 1011 Sticks 【DFS 剪枝】
题目链接:http://poj.org/problem?id=1011 Sticks Time Limit: 1000MS Memory Limit: 10000K Total Submissio ...
- poj 1011 Sticks
Sticks Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 126238 Accepted: 29477 Descrip ...
- poj 1011 Sticks (DFS+剪枝)
Sticks Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 127771 Accepted: 29926 Descrip ...
- POJ 1011 Sticks dfs,剪枝 难度:2
http://poj.org/problem?id=1011 要把所给的集合分成几个集合,每个集合相加之和ans相等,且ans最小,因为这个和ans只在[1,64*50]内,所以可以用dfs一试 首先 ...
- poj 1011 Sticks ,剪枝神题
木棒 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 118943 Accepted: 27429 Description 乔治拿 ...
- POJ 1011 Sticks(dfs+剪枝)
http://poj.org/problem?id=1011 题意:若干个相同长度的棍子被剪成若干长度的小棍,求每根棍子原来的可能最小长度. 思路:很经典的搜索题. 我一开始各种超时,这题需要很多剪枝 ...
随机推荐
- Php AES加密、解密与Java互操作的问题
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...
- 多边形背景生成工具推荐-Trianglify
前端开发whqet,csdn,王海庆,whqet,前端开发专家 low poly低多边形(相似于折纸的效果),多边形风格的设计应用越来越多,今天我们就来看一个利用d3.js写成的生成器Triangli ...
- 0703-APP-Notification-statue-bar
1.展示显示textTicker和仅仅有icon的两种情况:当參数showTicker为true时显示否则不显示 // In this sample, we'll use the same text ...
- android使用webview加载flash文件
android 字段webview几乎实现了浏览器的全部功能,最近在使用webview加载不固定格式的文章,文章中有一部分嵌入了flash,下面就是webview可以进行视频需要进行的设置,代码如下: ...
- IOS笔记 #pragma mark的用法
简单的来说就是为了方便查找和导航代码用的. 下面举例如何快速的定位到我已经标识过的代码. #pragma mark 播放节拍器 - (void) Run:(NSNumber *)tick { //.. ...
- cocos2d 小游戏
今天写了一个小游戏,发现看过的代码自己来写还是会经常出错,还是要多自己动手写写哈. 先上几张游戏界面图 void HelloWorld::addTarget() { //首先初始化精灵 CCSprit ...
- Linux 学习笔记 基本的bash shell命令
Linux 文件系统 Linux讲文件存储在单个目录结构(虚拟目录)中,虚拟目录包含了安装在PC上的所有存储设备的文件路径. Linux虚拟目录中比较复杂的部分是它如何来协调管理各个存储设备.Linu ...
- compile ffmpeg
download SDL 1.2.xxx version source code. 1) configure 2) make & make instll download recent ffm ...
- Apache配置虚拟主机后,不能访问localhost的问题
今天想试用一下php7,但是发现php7只支持Apache2.4版本,而我电脑上的Apache是2.2版本,为了想尝鲜,就必须去下载新的Apache2.4 php7和apache2.4安装整合以后,l ...
- c语言面试题之sizeof
c语言面试题之sizeof */--> c语言面试题之sizeof Table of Contents 1. sizeof 1 sizeof sizeof是c语言中判断数据类型或者表达式的长度符 ...