搜索剪枝回溯经典题目 pku 1011 sticks
来源:互联网 发布:办公室软件免费下载 编辑:程序博客网 时间:2024/04/29 05:54
题目:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1011
#include <stdio.h>#include <algorithm>#define max 65int sticks[max];bool used[max];int M;int cmp(const void *e1,const void *e2){return (*(int *)e1) - (*(int *)e2) > 0 ? -1 : 1;}bool f(int k,int left,int L,int N){//能否将k根木板拼成N根L长的木棒加上一根left长的木棒if(k == 0 && left == 0 && N == 0)//如果在k=0的时候left=N=0,则说明可以完成这种组合return true;if(left == 0)//已经拼好一根木板的时候//那么剩下的木棒数量就减一,同时新模板的长度为Lreturn f(k,L,L,N - 1);//t = max{stick <= left && used == false}for(int i = 0;i < M;i++)if(sticks[i] <= left && !used[i]){used[i] = true;if(f(k - 1,left - sticks[i],L,N))return true;//回到当前状态used[i] = false;//这个剪枝条件想了好久~~~最后还是看书了。。。—_-`//这个回溯 好牛逼!!!//一.当前状态为死节点//二.木棒长度为剩余left段的第一个位置或者最后一个位置//可想而知是找不到替换木棒的 总是会多出这么一段left。。。if(sticks[i] == left || left == L)break;}//剪枝条件,找不到t,当前状态不合法.return false;}int main(){FILE *fp = fopen("data.txt","r");while(scanf("%d",&M)/*fscanf(fp,"%d",&M)*/,M){int i,stick,len,sum;sum = 0;for(i = 0;i < M;i++){scanf("%d",&stick);//fscanf(fp,"%d",&stick);sticks[i] = stick;sum += stick;}qsort(sticks,M,sizeof(sticks[0]),cmp);len = sticks[0];memset(used,false,M);for(i = len;i <= sum;i++){if(sum % i)continue;if(f(M,0,i,sum / i)){printf("%d/n",i);break;}}}return 0;}
- 搜索剪枝回溯经典题目 pku 1011 sticks
- pku 1011 sticks 搜索+剪枝 解题报告
- pku 1011 sticks 经典DFS+剪枝
- PKU-1011 Sticks (DFS + 剪枝)
- poj 1011 Sticks(经典搜索问题:DFS+剪枝)
- poj 1011Sticks(搜索 剪枝超级多 经典)
- poj 1011 Sticks(搜索+剪枝)
- POJ 1011 STICKS 搜索 剪枝
- POJ 1011 Sticks(搜索+剪枝)
- POJ 1011 Sticks(DFS回溯剪枝)
- [回溯&&剪枝]Sticks UVA307
- poj 1011 sticks 搜索加剪枝
- 搜索+剪枝——POJ 1011 Sticks
- 搜索+剪枝——POJ 1011 Sticks
- POJ 1011 Sticks(搜索剪枝)
- poj 1011 Sticks 深度搜索+(剪枝)
- UVA - 307 Sticks 剪枝+回溯
- POJ 1011 Sticks 经典dfs + 剪枝
- TCP的核心算法在lwip中的实现
- C#打包部署全攻略之添加卸载程序
- 控制原理,有用的好东东!!!!分享啦!!!!
- 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT) – 整理
- Java从入门到精通 - Java包装类
- 搜索剪枝回溯经典题目 pku 1011 sticks
- EchoLife HG520s 无线路由功能开启(配置小记)
- Java正则表达式详解
- C.Class
- n皇后问题
- 我的责任
- 一些常用的linux命令
- linux嵌入式资源
- 修正网页中div或ul或其他块元素在IE6,IE7,FF,Opera中显示不同的杀手锏