E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
POJ1011
DFS:拯救少林神棍(Sticks)[四轮剪枝操作]
POJ1011
拯救少林神棍(Sticks)Description乔治拿来一组等长的木棍,将它们随机地砍断,使得每一节木棒的长度都不超过50个长度单位。
ACMer_CTGU
·
2021-01-30 22:41
数据结构
算法
dfs
剪枝
POJ1011
dfs剪枝 半原创
importjava.io.File;importjava.io.FileNotFoundException;importjava.util.Scanner;publicclassSticks{staticintlen;staticintavg;staticint[]seq;staticboolean[]isV;staticinttotal;publicstaticvoidmain(String[
Tb5821
·
2020-09-12 05:22
私人
【
POJ1011
】Sticks-DFS+调整法剪枝
测试地址:Sticks题目大意:有n根小棍,要拼成若干根长度相等的大棍,问大棍的最小长度是多少。做法:很容易确定搜索思路:枚举大棍的长度,然后进行DFS查看是否可行,用一个bool函数dfs(r,l)表示当前剩余r根小棍未使用,当前大棍剩余长度为l的情况下是否有解。但是单纯这样裸搜,不知道要搜多少年呢...于是在看了一些资料之后,找到了一些剪枝思路:1.如果当前大棍长度不是小棍长度之和的因数,不用
Maxwei_wzj
·
2020-09-12 05:20
搜索-DFS
递归三部曲之深入理解斐波那契数列
之前看过全排列,但是总感觉有点别扭,因为那时候还不能驾驭递归中的回溯,最近做
poj1011
的Sticks的时候发现又要用到回溯的思想,但是有点看不明白,于是沉下心来好好的看看。发现还是有收获的。
Anker2020
·
2020-08-24 10:19
递归
搜索(3):重复性剪枝 (
poj1011
)
POJ1011
在民国某年,少林寺被军阀炮轰,这些棍子被炸成N节长度各异的小木棒战火过后,少林方丈想要用这些木棒拼回原来的棍子可他记不得原来到底有几根棍子了,只知道古人比较矮,且为了携带方便,棍子一定比较短他想知道这些棍子最短可能有多短分析
sun897949163
·
2020-08-24 10:42
搜索
0x21 剪枝
poj1011
枚举答案,搜索记录当前到第几根木棒。剪枝:1、从大到小排序2、排除等效,这个感觉还行,就是木棒按大小顺序进去,去除顺序不同的相同的情况,相同的木棒也是不用管的。
weixin_30555125
·
2020-08-23 03:27
POJ1011
Sticks【DFS+剪枝】
题目:DescriptionGeorgetooksticksofthesamelengthandcutthemrandomlyuntilallpartsbecameatmost50unitslong.Nowhewantstoreturnstickstotheoriginalstate,butheforgothowmanystickshehadoriginallyandhowlongtheywere
huanghanqian
·
2020-08-19 10:35
POJ
【
poj1011
】木棒
Description乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位。然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度。请你设计一个程序,帮助乔治计算木棒的可能最小长度。每一节木棍的长度都用大于零的整数表示。Input输入包含多组数据,每组数据包括两行。第一行是一个不超过64的整数,表示砍断之后共有多少节木棍。第二行是截断以
DQSSS
·
2020-08-19 08:07
===搜索===
暴搜
===其他算法===
代码能力
poj1011
搜索
经典搜索题,黑书上的剪枝例题。剪枝的空间很大,剪枝前写下朴素的搜索框架(黑字部分),枚举原始木棍的长度及由那些小木棍组合。原始木棍长度一定是小木棍总长度的约数,因此可以减少枚举量。越长的木棍对后面木棍的约束力越大,因此要把小木棍排序,按木棍长度从大到小搜索,这样就能在尽可能靠近根的地方剪枝。(剪枝一)如果当前木棍能恰好填满一根原始木棍,但因剩余的木棍无法组合出合法解而返回,那么让我们考虑接下来的两
翔蝈蝈
·
2020-08-19 07:45
poj1011
(搜索应用)
唉,做的挺纠结的一题,参考了大牛们的代码,最后发现这个解法最易懂,就拿出来和大家分享下!!!题目大意及解题思想:【题意】:乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位。然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度。请你设计一个程序,帮助乔治计算木棒的可能最小长度。每一节木棍的长度都用大于零的整数表示。【题解】:不得不说
wy_kath
·
2020-08-19 06:46
ACM
POJ1011
木棒 【题目详解】
题意:乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位。然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度。请你设计一个程序,帮助乔治计算木棒的可能最小长度。每一节木棍的长度都用大于零的整数表示。看题目明显知道这是一道简单搜索,只不过需要几项剪枝,初步思路肯定是从小到大枚举或二分长度(其实二分没什么卵用),然后把每一个枚举到的长
daxian3723
·
2020-08-19 06:14
木棒(剪枝+dfs)
POJ1011
乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位。然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度。请你设计一个程序,帮助乔治计算木棒的可能最小长度。每一节木棍的长度都用大于零的整数表示。输入格式输入包含多组数据,每组数据包括两行。第一行是一个不超过64的整数,表示砍断之后共有多少节木棍。第二行是截断以后,所得到的各节木棍的长
tomjobs
·
2020-08-10 21:35
#
搜索算法
一道恶心的题目
poj1011
小木棍
1.题目poj1011Description乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位。然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度。请你设计一个程序,帮助乔治计算木棒的可能最小长度。每一节木棍的长度都用大于零的整数表示。Input输入包含多组数据,每组数据包括两行。第一行是一个不超过64的整数,表示砍断之后共有多少
Who_is_WZX
·
2020-08-10 18:43
S!
恶心的题目
搜索
poj1011
——木棍
标准递归版本,参照《程序设计在线》:#include#include#includeinta[70],used[70];intn,maxlen,sumlen,k;intyuanlen,num,flag;intcmp(constvoid*a,constvoid*b){return*(int*)b-*(int*)a;}booldfs(intunused,intleft,intlen){inti;if(
lazy_virus
·
2020-08-10 17:50
poj1011
深搜入门
题目意思很简单:就是要把之前掰断的棍子还原成多少根一样长的棍子就好了#include#include#include#includeusingnamespacestd;inta[100];boolused[100];intaim,num,n;intcmp(intx,inty){return(x>y?1:0);}booldfs(intstick,intlen,intpos){inti;boolsig
这个昵称好像藏起来了
·
2020-08-10 14:42
图
论
acm
POJ1011
木棒
题意:n(n#include#includeusingnamespacestd;constintN=70;intn,sum,lth,a[N],vis[N];boolcmp(inta,intb){returna>b;}booldfs(intl,intk,intcnt){if(cnt==sum/lth)returntrue;if(l==lth)returndfs(0,0,cnt+1);intpre=0
Monster__Yi
·
2020-08-10 14:33
深度优先搜索DFS
poj1011
小木棍(炒鸡易懂)
Description乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位。然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度。请你设计一个程序,帮助乔治计算木棒的可能最小长度。每一节木棍的长度都用大于零的整数表示。Input输入包含多组数据,每组数据包括两行。第一行是一个不超过64的整数,表示砍断之后共有多少节木棍。第二行是截断以
Loi_DL
·
2020-08-10 14:10
贴题
--^----------
--------
-
poj1011
| NKOJ 1423 木棍
P1423【分类练习6.搜索】小木棍时间限制:10000MS空间限制:65536KB问题描述乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50。现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度。给出每段小木棍的长度,编程帮他找出原始木棍的最小可能长度。输入格式输入文件共有二行。第一行为一个单独的整数N表示看过以后的小木柜的总数,其中N≤6
INCINCIBLE
·
2020-08-10 14:41
搜索
poj 2362 hdoj 1518 Square(搜索)
解题思路:
POJ1011
的热身题,DFS+剪枝本题大致做法就是对所有小棒子长度求和sum,sum就是正方形的周长,sum/4就是边长side。
deji2909
·
2020-08-09 07:33
hdu1455
poj1011
hoj1049 Sticks 深搜+剪枝
由于明天要给大一的同学讲搜索,所以临时放下了线段树,刷几个搜索题,结果这个题就从早上卡我到现在。题意就是将一些值分成若干份求和使得他们的和相等,求出最小的能满足条件的和这道题的关键之处在于剪枝:1、这个和肯定整除所有数的总和,且这个和最小就是这些数中的最大值,所以枚举和的时候可以先剪枝2、搜的过程中,如果当前的和加上剩下所有的和小于目标和,则直接返回03、当前和与目标和的差小于所有数的最小值,则直
cen5bin
·
2020-08-09 07:18
ACM算法
poj 1021 Anniversary Cake【dfs】
这个题和
poj1011
(http://blog.csdn.net/lifajun90/article/details/8480779)很类似,上一题是拼一维的棍子,这一题是拼二维的正方形,都是用搜索的方法
lifajun90
·
2020-07-04 21:24
搜索
智慧搜索
剪枝
POJ1011
:Sticks蓝书上的例题,不再赘述。代码如下/**/#definemethod_1#ifdefmethod_1/*蓝书上的例题,不再赘述。
云中翻月
·
2020-03-31 00:45
poj1011
Sticks DFS深度优先搜索+剪枝
这道题目吧,我看了蛮久的别人的博客,突然发现有一个剪枝,剪完之后从超时变成了0ms,太牛逼了。我的代码下面都有讲解,自己看看就OK了。闲话不多说,直接上代码:#include#include#include#include#include#includeusingnamespacestd;inta[70],n,len;//a是小棒的长度,n是有多少根,len是尝试len是否可以完成boolp[70
cnyali_ljf
·
2016-08-04 10:09
dfs
poj
poj1011
深搜入门
题目意思很简单:就是要把之前掰断的棍子还原成多少根一样长的棍子就好了 #include #include #include #include usingnamespacestd; inta[100]; boolused[100]; intaim,num,n; intcmp(intx,inty){ return(x>y?1:0); } booldfs(intstick,intlen,intpo
Summer__show_
·
2016-03-16 21:00
POJ 1011 Sticks (dfs + 厉害的剪枝)
POJ1011
拿2362的代码来交果断超时,研究了半天也没整出来。看了大神的剪枝方法,简直五体投地。详见代码。
Strokess
·
2016-03-10 18:00
组合长度
poj1011
最近用使开发的过程中出现了一个小问题,顺便记载一下原因和方法--组合长度 c++的现实方法可以考参http://blog.csdn.net/lyy289065406/article/details/6647960 解题路思: DFS+剪枝 &nbs
·
2015-11-13 09:00
poj
POJ2362-Square
解题思路:
POJ1011
的热身题,DFS+剪枝 本题大致做法就是对所有小棒子长度求和sum,sum就是正方形的
·
2015-11-13 09:36
poj
Sticks(
poj1011
/uva307)
题目大意: 乔治有一些碎木棒,是通过将一些相等长度的原始木棒折断得到的,给出碎木棒的总数和各自的长度,求最小的可能的原始木棒的长度;(就是将一些正整数分组,每组加起来和相等,使和尽可能小) 一开始做poj 32ms过,但uva3000 ms 都超时。。。而且poj discuss里给出了一组bT数据,最后uva 0.2sac的代码也跑了3 。4秒左右。discuss里的大牛据
·
2015-11-12 14:02
poj
POJ1011
Sticks
经典的DFS剪枝,值得回味。多个剪枝:1.木棍长度L必须整除总长sum;2.木棍总长L大于等于小木棍最长那个,小于等于sum;3.小木棍长度排序,从大的开始枚举,因为大的约束多,所以能接近根处剪枝;4.小木棍排序过,同样长度的相邻,如果有个同样长度的不行,那么之后同样长度的也不行;5.最重要有效的剪枝:假设木棍长度是L,那么现在是一部分L拼完了,一部分L没拼完如下(\分割):L, L, L, L
·
2015-11-11 09:14
poj
poj1011
Sticks(dfs+剪枝)
Sticks Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 110416 Accepted: 25331 Description George took sticks of the same length and cut th
·
2015-11-11 04:26
poj
poj1011
Sticks
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 using namespace std; 6 bool anUsed[65]; 7 int L,N,stick[65]; 8 bool cmp(int a
·
2015-11-07 13:23
poj
poj1011
题意:给出一些木棒,已知这些木棒是由原来的一些等长的木棒切割而成,问原木棒最小可能长度是多少。 分析:dfs。从小到大枚举原木棒长度,然后对于每次枚举进行深搜。深搜过程就是用输入的小木棒来填充原来的一根根木棒的过程。如果我们现将一根小木棒是放在原木棒中的第一根小木棒,那么如果还不能匹配成功,则说明该小木棒无法匹配,故该原木棒长度不行。如果一根小木棒是填充一根原木棒时用的最后一根小木棒,且后面填充
·
2015-11-06 08:11
poj
poj1011
Sticks Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 95592 Accepted: 21482 Description George took sticks of the same length and cut the
·
2015-10-31 09:01
poj
POJ 1543
//
poj1011
无限wa,做道简单的,直接暴力竟然AC啦 //大意:输出所有满足a^3 = b^3 + c^3 + d^3 的a #include <iostream> #include
·
2015-10-30 15:24
poj
POJ1011
Sticks Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 100068 Accepted: 22747 Description George took sticks of the same length and cut th
·
2015-10-30 14:25
poj
POJ1011
———Sticks
/*dfs,剪枝是关键。╮(╯▽╰)╭本来是想一根棍子 一个棍子的填充,遇到棍子不合适的就回溯。但是实验 证明这绝对是剪错方向的!正确的解法是。。。先寻找 第一根棍子合不合适,如果不合适就没有必要找下去了, 这是关键点。这题堪称剪枝之最啊~~~~~ */ #include<cstdio> #include<cstring> #include<alg
·
2015-10-30 13:38
poj
poj1011
题意:一些木棍,已知每个的长度,把他们全用上,去拼成一些长度相等的木棍,最小长度是多少。 分析:dfs。先计算所有木棒的长度之和,然后枚举每个能被整除这个和的长度作为结果,并递归判断是否可行。 递归过程需要加一些优化: 1.先把木棍从大到小排序,大木棍的灵活性低,较难满足,因此先判断。 2.在拼一个木棍时所使用的第一个小木棍如果不行,那么当前大木棍的长度可以被舍弃。 #inclu
·
2015-10-30 12:08
poj
【
poj1011
】木棒
Description乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位。然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度。请你设计一个程序,帮助乔治计算木棒的可能最小长度。每一节木棍的长度都用大于零的整数表示。Input输入包含多组数据,每组数据包括两行。第一行是一个不超过64的整数,表示砍断之后共有多少节木棍。第二行是截断以
LOI_DQS
·
2015-09-02 23:00
搜索
代码能力
poj1011
Sticks
DescriptionGeorgetooksticksofthesamelengthandcutthemrandomlyuntilallpartsbecameatmost50unitslong.Nowhewantstoreturnstickstotheoriginalstate,butheforgothowmanystickshehadoriginallyandhowlongtheywereori
Kirito_Acmer
·
2015-08-14 20:00
搜索
dfs+剪枝
poj1011
大致题意:给定一堆不定长度的小棒子,问他们能否构成一个正方形。思路:对所有的棒子求和sum之后除以4,得到边长side,问题就转换为求这些棒子能否拼接成4个长度为side的长棒子。有些地方可以剪枝:1,棒子的个数小于4或者sum不能整除4.2,边长side要大于等于棒子中最长的一根,因为棒子不能弄断3,当满足前两者的时候,只要拼接成了三条边就可以了4,将所有棒子降序排列之后,每次搜索的时候,从当前
liuyanfeier
·
2015-08-12 20:00
ACM
hdu1455 &&
poj1011
Sticks(深度优先搜索 DFS 经典剪枝 详解)
这道题在两个OJ上都有POJ地址http://poj.org/problem?id=1011HDU地址http://acm.hdu.edu.cn/showproblem.php?pid=1455SticksTimeLimit: 1000MS MemoryLimit: 10000KTotalSubmissions: 129296 Accepted: 30304DescriptionGeorgetoo
sinat_30126425
·
2015-08-12 15:00
【DFS搜索】
poj1011
Sticks
题目描述:给定n个小木棍,将他们接成长度相等的若干根。求接成的木棍长度最小值。很明显这是一道dfs搜索题。很容易想到所求的值在最长小木棍和小木棍总长度中间。注意不能用二分答案,因为不具有单调性。只能靠剪枝了。然而这道题处处都要剪枝才能AC,不愧是经典搜索好题==剪枝一:答案在最长小木棍和小木棍总长度中间,且是总长度的因数。(否则不能接成长度相等的若干根)。剪枝二:先将小木棍长度从大到小sort一下
cqbztsy
·
2015-07-23 08:00
搜索
DFS
POJ1011
poj1011
(dfs+目前做的最好的剪枝)
题意:n根不同长度的小棍,拼成若干长棍,要这些长棍的长度相等,并且小棍刚好用完,问拼成长棍的最短长度是?前话:这题是在暑假第一天搜索专题下,作为自己复习的练手题目,其实是又一次加深学习搜索的思想(弱已跪)和回溯的一些理解。思路:表明上初看此题就像是搜索,(我开始也想过二分,这并不是只有一种可行,而是找到最短),首先考虑搜索的方向,最短,那肯定是从最短的情况开始递增,最短的可能情况那肯定就是最长的的
yexiaohhjk
·
2015-07-11 23:00
DFS
POJ1011
Sticks 深搜+剪枝 ACM解题报告
我是一只小菜鸟,打酱油本领强。本题一开始我想直接用深搜,不过设了两个参数却怎么写写不出,不造如何判断当前搜索最后能不能得到解,可能是我的代码基础不行,后来百度学习了下回溯法和剪枝,参考了别的大神的写法,大多数想法一样,就是他们用了三个参数,可以很清楚的表示能不能搜索成功,如果不能则回溯到上一个结点,这题真的是很经典,所以作此记录。#include #include #include #includ
Miracle_ma
·
2014-12-22 09:00
poj
poj1011
Sticks DFS+回溯
转载请注明出处:http://blog.csdn.net/u012860063题目链接:http://poj.org/problem?id=1011DescriptionGeorgetooksticksofthesamelengthandcutthemrandomlyuntilallpartsbecameatmost50unitslong.Nowhewantstoreturnstickstothe
u012860063
·
2014-06-26 22:00
DFS
poj1011
木棒问题
问题描述:乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位。然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度。请你设计一个程序,帮助乔治计算木棒的可能最小长度。每一节木棍的长度都用大于零的整数表示。解题思路:1,先计算出现在这些木棒的总长度sum,并记录其中最长的长度max,2,利用循环找到(max+i)*j==sum;3,如
u014594922
·
2014-04-07 22:00
源代码
poj
iostream
poj 2362 Square
id=2362跟
poj1011
,nyoj293大体思路一样!但是这个题要有自身的剪枝!
Hearthougan
·
2014-04-05 16:00
[搜索] ZOJ1002、ZOJ1008、ZOJ1019、
POJ1011
ZOJ1002题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1002 一个迷宫有一些围墙障碍,如果防止的两个碉堡可以直接连线且中间没有围墙挡住,则是不可以放置的。因为数据范围小,直接DFS递归就好了。用col,row表示该行和列是否可以放置,当碰到围墙的时候,围墙所在的行和列都变成可以放置了(因为递归是从上到下从
a83610312
·
2013-07-03 10:00
POJ1011
转自:http://blog.sina.com.cn/s/blog_7d3ee9f50100wiy4.html 题目:SticksTimeLimit: 1000MS MemoryLimit: 10000KTotalSubmissions: 62343 Accepted: 13658DescriptionGeorgetooksticksofthesamelengthandcutthemrandoml
a83610312
·
2013-06-28 17:00
poj 2362 hdoj 1518 Square(搜索)
解题思路:
POJ1011
的热身题,DFS+剪枝 本题大致做法就是对所有小棒子长度求和sum,sum就是正方形的周长,sum/4就是边长side。
xindoo
·
2013-04-29 20:00
算法
搜索
ACM
DFS
上一页
1
2
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他