发一道老早写的题。

 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 搜索相关推荐

  1. POJ - 1011 Sticks(dfs+剪枝)(好题!!)

    题目链接:点击查看 题目大意:乔治拿来一组等长的木棍,将他们随机砍断,使得每一节木棍的长度都不超过50个单位长度,然后他又想将这些木棍恢复成砍断之前的状态,但他忘记了初始时有多少根木棍以及木棍的初始长 ...

  2. POJ 1011 Sticks

    POJ_1011 做完这个题目,让我不仅学到了一些别人剪枝的策略,更重要的是让我意识到了在搜索中剪枝的重要性. 所谓剪枝,其实就是对程序的优化,尽可能地避免程序执行无用的操作.就这个题目而言,程序的优 ...

  3. Poj 1011 UVA - 307 Sticks

    牛客网 poj 1011 题目: George took sticks of the same length and cut them randomly until all parts became ...

  4. 搜索 + 剪枝 --- POJ 1101 : Sticks

    Sticks Problem's Link:   http://poj.org/problem?id=1011 Mean: http://poj.org/problem?id=1011&lan ...

  5. Poj 1011:sticks通俗易懂 大法师+强力剪枝

    题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过 50 50 50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小 ...

  6. 木棒,POJ(1011)

    题目链接:http://poj.org/problem?id=1011 解题报告: #include <cstdio> #include <cstring> #include ...

  7. 1011 Sticks

    1204 Sticks 时间限制:1000MS  内存限制:10000K 提交次数:0 通过次数:0 题型: 外判编程题   语言: 无限制 Description George took stick ...

  8. Bloxorz I POJ - 3322(广度优先搜索)

    题意:传送门 对应游戏:传送门 题解:对于这个木块,可以发现有三个状态,第一个状态是直立的,第二个状态是横躺着,第三个状态是竖躺着,那么状态维护三个值x,y,liex,y,liex,y,lie,分别对 ...

  9. 【题解】POJ 1852 Ants(搜索)

    POJ1852 Ants 目录 POJ1852 Ants 原题 题意 题解 原题 An army of ants walk on a horizontal pole of length l cm, e ...

最新文章

  1. 如何将java.util.Date转换为java.sql.Date?
  2. EfficientNet 测试
  3. Dynamics CRM 注册插件dll到GAC
  4. CF1479B Painting the Array
  5. boot整合redis
  6. git报错:fatal: remote origin already exists
  7. 17.异常(三)之 e.printStackTrace()介绍
  8. CCNP之IPv6技术-过渡技术(NAT-PT)
  9. ASP.NET 首页性能的4大做法
  10. 微软4月13日发布Silverlight 4正式版
  11. source insight 如何设置背景颜色
  12. 3种常用的缓存读写策略
  13. 字节、快手、天弘基金等 :量化/算法工程师岗位【社招|校招|实习生】
  14. Javaweb开发学习笔记(三)
  15. 成功源于勤奋--起点年薪20万作者奋斗史
  16. 广东省计算机二级ps操作题题库,广东省计算机二级考试ps选择题.doc
  17. 商业汇票的背书、贴现与质押
  18. 安装声卡驱动后还是没声音?Win10如何区分新旧面板
  19. 计算机专业的大学生必考证书,大学必考8大证书计算机
  20. 请求一次服务器会显示请求了两次,在Appengin中,每个请求都会到达服务器两次...

热门文章

  1. c 语言名称的作用域,C 作用域规则
  2. 设计模式(四)--代理模式
  3. 计算机课例,计算机的基本组成教学课例
  4. mac nginx apache mysql php 一键_Mac 下搭建 apache / nginx+php+mysql
  5. python telnetlib执行命令_使用python Telnet远程登录执行程序的方法
  6. mongodb 时间戳 java_Java将日期类型Date时间戳转换为MongoDB的时间类型数据
  7. 当Sklearn遇上Plotly,会擦出怎样的火花?
  8. 已拿30K offer!感谢这几个公众号提供的各种学习教程
  9. php添加公告代码,为wordpress增加网站公告功能
  10. java反射 面试题_使用Java反射更改私有静态最终字段