poj 1011 Sticks 搜索
发一道老早写的题。
1 #include<iostream> 2 #include <algorithm> 3 using namespace std; 4 int a[65]; 5 bool use[65]; 6 int n,m,len; 7 int cmp(int a, int b) 8 { 9 return a > b;10 }11 bool dfs(int i,int sum,int j)12 {13 int k,temp,x;14 if(j==m) return 1;15 else if(sum==len) return dfs(1,0,j+1);16 else17 {18 temp=-1;19 for(k=i;k<=n;k++) 20 if(!use[k]&&a[k]<=len-sum&&a[k]!=temp)21 {22 temp=a[k];23 use[k]=1;24 x=dfs(k+1,sum+a[k],j);25 use[k]=0;26 if(x==1) return 1;27 if(i==1) return 0;28 } 29 } 30 return 0;31 } 32 int main()33 {34 int sum;35 int i,j;36 cin>>n;37 while(n!=0)38 { 39 for(i=1;i<=n;i++) cin>>a[i];40 sort(a+1, a+n+1, cmp);41 sum=0;42 for(i=1;i<=n;i++) sum=a[i]+sum;43 for(len=a[1];len<sum;len++) 44 if(sum%len==0)45 { 46 memset(use,0,sizeof(use));47 m=sum/len;48 if(dfs(1,0,1)) break;49 }50 cout<<len<<endl;51 cin>>n;52 }53 }
转载于:https://www.cnblogs.com/myoi/archive/2012/03/29/2424079.html
poj 1011 Sticks 搜索相关推荐
- POJ - 1011 Sticks(dfs+剪枝)(好题!!)
题目链接:点击查看 题目大意:乔治拿来一组等长的木棍,将他们随机砍断,使得每一节木棍的长度都不超过50个单位长度,然后他又想将这些木棍恢复成砍断之前的状态,但他忘记了初始时有多少根木棍以及木棍的初始长 ...
- POJ 1011 Sticks
POJ_1011 做完这个题目,让我不仅学到了一些别人剪枝的策略,更重要的是让我意识到了在搜索中剪枝的重要性. 所谓剪枝,其实就是对程序的优化,尽可能地避免程序执行无用的操作.就这个题目而言,程序的优 ...
- Poj 1011 UVA - 307 Sticks
牛客网 poj 1011 题目: George took sticks of the same length and cut them randomly until all parts became ...
- 搜索 + 剪枝 --- POJ 1101 : Sticks
Sticks Problem's Link: http://poj.org/problem?id=1011 Mean: http://poj.org/problem?id=1011&lan ...
- Poj 1011:sticks通俗易懂 大法师+强力剪枝
题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过 50 50 50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小 ...
- 木棒,POJ(1011)
题目链接:http://poj.org/problem?id=1011 解题报告: #include <cstdio> #include <cstring> #include ...
- 1011 Sticks
1204 Sticks 时间限制:1000MS 内存限制:10000K 提交次数:0 通过次数:0 题型: 外判编程题 语言: 无限制 Description George took stick ...
- Bloxorz I POJ - 3322(广度优先搜索)
题意:传送门 对应游戏:传送门 题解:对于这个木块,可以发现有三个状态,第一个状态是直立的,第二个状态是横躺着,第三个状态是竖躺着,那么状态维护三个值x,y,liex,y,liex,y,lie,分别对 ...
- 【题解】POJ 1852 Ants(搜索)
POJ1852 Ants 目录 POJ1852 Ants 原题 题意 题解 原题 An army of ants walk on a horizontal pole of length l cm, e ...
最新文章
- 如何将java.util.Date转换为java.sql.Date?
- EfficientNet 测试
- Dynamics CRM 注册插件dll到GAC
- CF1479B Painting the Array
- boot整合redis
- git报错:fatal: remote origin already exists
- 17.异常(三)之 e.printStackTrace()介绍
- CCNP之IPv6技术-过渡技术(NAT-PT)
- ASP.NET 首页性能的4大做法
- 微软4月13日发布Silverlight 4正式版
- source insight 如何设置背景颜色
- 3种常用的缓存读写策略
- 字节、快手、天弘基金等 :量化/算法工程师岗位【社招|校招|实习生】
- Javaweb开发学习笔记(三)
- 成功源于勤奋--起点年薪20万作者奋斗史
- 广东省计算机二级ps操作题题库,广东省计算机二级考试ps选择题.doc
- 商业汇票的背书、贴现与质押
- 安装声卡驱动后还是没声音?Win10如何区分新旧面板
- 计算机专业的大学生必考证书,大学必考8大证书计算机
- 请求一次服务器会显示请求了两次,在Appengin中,每个请求都会到达服务器两次...
热门文章
- c 语言名称的作用域,C 作用域规则
- 设计模式(四)--代理模式
- 计算机课例,计算机的基本组成教学课例
- mac nginx apache mysql php 一键_Mac 下搭建 apache / nginx+php+mysql
- python telnetlib执行命令_使用python Telnet远程登录执行程序的方法
- mongodb 时间戳 java_Java将日期类型Date时间戳转换为MongoDB的时间类型数据
- 当Sklearn遇上Plotly,会擦出怎样的火花?
- 已拿30K offer!感谢这几个公众号提供的各种学习教程
- php添加公告代码,为wordpress增加网站公告功能
- java反射 面试题_使用Java反射更改私有静态最终字段