POJ1011】的更多相关文章

http://poj.org/problem?id=1011 (题目链接) 题意 给出一大堆小棍子的长度,需要把他们拼成几根长度相等的大棍子,求大棍子的最短长度. Solution 经典搜索题,剪枝剪到手软. 要得到最小的原始木棍长度,可以按照分段数的长度,依次枚举所有的可能长度L.每次枚举L时,dfs判断是否能用小木棍拼合出整数个L.如果不剪枝,就等着狂TLE吧. 最优性: 1.所有木棍的长度和一定能一定能整除大木棍长度L. 2.大木棍长度一定>=小木棍最长长度. 可行性: 3.一只长木棍肯定…
今天搞了一下传说中的经典搜索题——poj1011,果然里面充斥着各种巧妙的剪枝,做完之后回味一下还是感觉构思太巧妙,所以总结记录一下加深理解. 原题:http://poj.org/problem?id=1011 刚开始接触搜索的初学者面对这道题可能感觉无从下手,即便是告诉了要用深搜解决这道题,也不知道怎么用,我现在也对搜索有了更多的理解与体会,其实不要把搜索只理解为在一个地图上找点,其实搜索更可以抽象为当面对多个选择的时候如何抉择,深搜就是先认准一个方向走下去,不行再回来,走别的路:广搜就是把每…
题目链接 http://poj.org/problem?id=1011 题意 输入n根棍子的长度,将这n根棍子组合成若干根长度相同的棍子,求组合后的棍子的最小长度.这题是poj2362的加强版,思路与poj2362相同,只是在2362的基础上添加了剪枝操作,做这题之前先去做poj2362效果最好. 思路 由于棍子越长,组合时的灵活性越差,所以要先从长棍子开始搜索,则首先要将n根棍子从长到短排序,然后从最长的棍子开始dfs.由于棍子最多可以有64根,不剪枝的话肯定会超时.以下是几种剪枝方法: (1…
https://vjudge.net/problem/POJ-1011 此题很重要.★★★ 很欢(e)乐(xin)的一道搜索剪枝题..poj数据还是太水了,我后来想不出来剪枝方法了,就加了句掐了时间语句交上去骗了一个AC..洛谷上加强数据掉了4个点. 由题意(翻译)  ,要确定一个长度让所有短木棍拼的出来.由于数据看起来很小N只有64,所以要搜索.但是怎么搜还是关键.由于枚举长度不满足答案单调性,所以不好二分,只能从小到大枚举,找到就输出.每次check的dfs就是看可不可以选出恰好拼出一根长度…
题目链接:https://vjudge.net/problem/POJ-1011 题意:给定n(<=64)条木棍的长度(<=50),将这些木棍刚好拼成长度一样的若干条木棍,求拼出的可能的最小长度. 思路:经典的DFS剪枝题,这道题的剪枝技巧很关键. 数据不大,可以想到枚举木棍所有可能的长度,然后利用dfs来查找所有可能的搭配情况,dfs的参数len表示当前的木棍长度,rest表示还需要的长度,pos表示当前搜到的下标,num表示原始木棍中剩余没有匹配的数量,搜索的终止条件为rest==0&am…
poj1011 Sticks 题目连接: poj1011 Description George took sticks of the same length and cut them randomly until all parts became at most 50 units long. Now he wants to return sticks to the original state, but he forgot how many sticks he had originally an…
木棒 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 136132   Accepted: 32036 Description 乔 治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位.然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多 少木棒以及木棒的初始长度.请你设计一个程序,帮助乔治计算木棒的可能最小长度.每一节木棍的长度都用大于零的整数表示. Input 输入包含多组数据,每…
Description George took sticks of the same length and cut them randomly until all parts became at most 50 units long. Now he wants to return sticks to the original state, but he forgot how many sticks he had originally and how long they were original…
Sticks Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 129606   Accepted: 30388 Description George took sticks of the same length and cut them randomly until all parts became at most 50 units long. Now he wants to return sticks to the or…
题目大意: 乔治有一些碎木棒,是通过将一些相等长度的原始木棒折断得到的,给出碎木棒的总数和各自的长度,求最小的可能的原始木棒的长度:(就是将一些正整数分组,每组加起来和相等,使和尽可能小) 一开始做poj 32ms过,但uva3000 ms 都超时...而且poj discuss里给出了一组bT数据,最后uva 0.2sac的代码也跑了3 .4秒左右.discuss里的大牛据说什么奇偶性剪枝0.01ms过,可惜搜了半天也没找到具体方法.这题就这样过好了..(参考各种空间博客才艰难ac.不过此题实…