高中物理教学艺术
这个题目是不是贪心的,我就是第一次用了贪心,一直WA,相当的悲剧,贪心错误的sample:7 15 11 8 8 8 4 3 2 1,所以大家还是全部搜索。但是全部搜索必须剪枝,不然肯定是TLE的,而且本体属于强剪枝,少剪了也是TLE。
经典搜索题,果然是到处充斥着剪枝才能过啊,我的代码离剪到极限还差很多
题目给出一大堆小棍子的长度,需要把他们拼成几根长度相等的大棍子,求大棍子的最短长度
看自己剪枝方法的效果时候,可以添设一个变量来记录递归次数
如剪枝4:没有这个剪枝的情况下对以下数据需要40万次递归,而加上这个剪枝后减少到了4万多次
对数据:
45
15 3 2 4 11 1 8 8 8 15 3 2 4 11 1 8 8 8 15 3 2 4 11 1 8 8 8 15 3 2 4 11 1 8 8 8 15 3 2 4 11 1 8 8 8
#include <iostream>
#include <algorithm>
using namespace std;
int sticks[65];
int used[65];
int n,len;
bool dfs(int i,int l,int t)//i为当前试取的棍子序号,l为要拼成一根完整的棍子还需要的长度,t初值为所有棍子总长度
{
if(l==0)
{
t-=len;
if(t==0)return true;
for(i=0;used[i];++i); //剪枝1:搜索下一根大棍子的时候,找到第一个还没有使用的小棍子开始
used[i]=1; //由于排序过,找到的第一根肯定最长,也肯定要使用,所以从下一根开始搜索
if(dfs(i+1,len-sticks[i],t))return true;
used[i]=0;
t+=len;
}
else
{
for(int j=i;j<n;++j)
{
if(j>0&&(sticks[j]==sticks[j-1]&&!used[j-1])) //剪枝2:前后两根长度相等时,如果前面那根没被使用,也就是由前面那根
continue; //开始搜索不到正确结果,那么再从这根开始也肯定搜索不出正确结果,此剪枝威力较大
if(!used[j]&&l>=sticks[j]) //剪枝3:最简单的剪枝,要拼成一根大棍子还需要的长度L>=当前小棍子长度,才能选用
{
l-=sticks[j];
used[j]=1;
if(dfs(j,l,t))return true;
l+=sticks[j];
used[j]=0;
if(sticks[j]==l) //剪枝4:威力巨大的剪枝,程序要运行到此处说明往下的搜索失败,若本次的小棍长度刚好填满剩下长度,但是后
break; //面的搜索失败,则应该返回上一层
}
}
}
return false;
}
bool cmp(const int a, const int b)
{
return a>b;
}
int main()
{
while(cin>>n&&n)
{
int sum=0;
for(int i=0;i<n;++i)
ACM 必做 50 题的解题并查集 .txt 也就是告诉 n 个顶点,m 条边,求最小...[x] = 0; } /* 查找 x 元素所在的集合,回溯时压缩路径 */ int Find_...
ACM必做50题的解题-搜索 ACM必做50题的解题-并查... ACM必做50题的解题-快速... ACM必做50题的解题-数学 ACM必做50题的解题-最小... ACM必做50题...
ACM必做50题的解题-搜索 9页 1下载券 ACM必做50题的解题-最小... 3页...ACM 必做 50 题的解题-高精度.txt 不要放弃自己! ---(妈妈曾经这样对我说...
ACM必做50题的解题-搜索 ACM必做50题的解题-并查... ACM必做50题的解题-快速... ACM必做50题的解题-数学 ACM必做50题的解题-数论 ACM必做50题的解题...
如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 加入阅读会员!获取下载券 ACM必做50题的解题-快速查找 (B-Search,...
18页 免费 ACM必做50题的解题-并查集 4页 1财富值搜你所想,读你所爱 ... 如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击...
ACM必做50题的解题-搜索 ACM必做50题的解题-并查... ACM必做50题的解题-快速... ACM必做50题的解题-数学 ACM必做50题的解题-数论 ACM必做50题的解题...
70页 免费 ACM必做50题的解题-数学 5页 1下载券喜欢此文档的还喜欢...功能强大、运行速度快 10、掌握排列组合的基本算法、有序搜索时避免写递归调用的...
热门文档