题目描述

乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50。

现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度。

给出每段小木棍的长度,编程帮他找出原始木棍的最小可能长度。

输入输出格式

输入格式:

输入文件共有二行。

第一行为一个单独的整数N表示砍过以后的小木棍的总数,其中N≤65

(管理员注:要把超过50的长度自觉过滤掉,坑了很多人了!)

第二行为N个用空个隔开的正整数,表示N根小木棍的长度。

输出格式:

输出文件仅一行,表示要求的原始木棍的最小可能长度

输入输出样例

输入样例#1:

9
5 2 1 5 2 1 5 2 1

输出样例#1:

6

思路:dfs+剪枝
代码实现:

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 int n,ans;
 6 int s[80];
 7 int a[80],b,c;
 8 inline int max_(int x,int y){return x>y?x:y;}
 9 inline bool cmp(int a,int b){return a>b;}
10 bool dfs(int k){
11     memset(a,0,sizeof(a));
12     for(int i=1;i<=n;i++){
13         b=0;
14         while(a[b]+s[i]>k) b++;
15         a[b]+=s[i];
16     }
17     for(int i=0;a[i];i++)
18     if(a[i]<k) return 0;
19     return 1;
20 }
21 int main(){
22     scanf("%d",&n);
23     for(int i=1;i<=n;i++){
24         scanf("%d",&s[i]);
25         if(s[i]>50) i--,n--;
26         else ans=max_(ans,s[i]);
27     }
28     sort(s+1,s+n+1,cmp);
29     while(!dfs(++ans));
30     printf("%d",ans);
31     return 0;
32 }

贪心 得分:47 耗时:34ms 内存:16414kb 代码:0.59KB

然而正解的搜索并没有打出来。

题目来源:洛谷

转载于:https://www.cnblogs.com/J-william/p/6644337.html

小木棍 [数据加强版]*相关推荐

  1. 题解 P1120 【小木棍 [数据加强版]】

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

  2. P1120-小木棍 [数据加强版]

    吸口氧气才能过 1 #include <bits/stdc++.h> 2 #define _for(i,a,b) for(int i = (a);i < b;i ++) 3 #def ...

  3. AC日记——小木棍【数据加强版】 洛谷 P1120

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

  4. 洛谷 小木棍(暴力+剪剪剪剪枝)

    题目链接: 小木棍 - 洛谷 思路: 如果只考虑暴力,做法很简单,枚举所有可能的最终长度,都跑一遍dfs,取最小结果即可,本题难就难在大量的剪枝,具体见代码. 我的思路也是参考了大佬的博客:题解 P1 ...

  5. c语言贪吃蛇黑方框,[求助][贪吃蛇]源程序,请教其中一个问题。

    [求助][贪吃蛇]源程序,请教其中一个问题. 源程序如下: 我的问题是,调节游戏速度时,数字为什么越大时,有时候竟然越快? #define N 200 #include #include #inclu ...

  6. 小木棍(洛谷-P1120)

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

  7. [现代诗]情诗——给网恋中人

                                                                           [现代诗]情诗--给网恋中人    我说亲爱的,从现在开始 ...

  8. 题解 Sticks 小木棍

    题解 Sticks 小木棍 题目描述: 每组数据给出N根小木棍,把它们拼接成若干根长度相等的木棍,求该长度的最小值. 题解: 该题就是dfs深搜+剪枝 ```cpp #include<iostr ...

  9. R语言使用ggpubr包的ggdotplot函数可视化水平棒棒糖图(自定义分组数据点色彩、自定义调色板、在两端添加点图的线段segments、整体排序从大到小、自定义数据点的大小、添加数值标签)

    R语言使用ggpubr包的ggdotplot函数可视化水平棒棒糖图(自定义分组数据点色彩.自定义调色板.在两端添加点图的线段segments.整体排序从大到小.自定义数据点的大小.添加数值标签) 目录

  10. 北风设计模式课程---深入理解[代理模式]原理与技术

    北风设计模式课程---深入理解[代理模式]原理与技术 一.总结 一句话总结: 不仅要通过视频学,还要看别的博客里面的介绍,搜讲解,搜作用,搜实例 设计模式都是对生活的抽象,比如用户获得装备,我可以先装 ...

最新文章

  1. Oracle集合操作函数:Union、Union All、Intersect、Minus
  2. asp.net 2.0中新增的AppendDataBoundItems
  3. Linux服务器日常巡检脚本分享
  4. 深入了解Java 8日期和时间API
  5. python计算方位角_实例讲解:用python 计算方位角(根据两点的坐标计算)记得收藏哦...
  6. 前端学习(2765):如何传递事件和参数
  7. Springboot中几个层的功能总结
  8. python连接sqlserver 多条sql语句后提交_利用python操作sqllite
  9. Ubuntu时间管理方法
  10. 国网四川电力应用大数据服务经济社会发展
  11. IOS版添加phonegap--美洽客服插件教程
  12. HTML5 标签汇总
  13. npm创建vue项目
  14. 特斯拉Model 3进化不止 传统车企到底应该学什么?
  15. 什么是动态域名解析?---金万维
  16. 从命令行编译 JScript 代码
  17. 谈谈我了解的那些在线it学习网站
  18. android 程序闪退 log,应用闪退log日志。。
  19. 分体式无线蓝牙耳机什么牌子好?分体式蓝牙耳机排行榜
  20. 树莓派上编写串口助手软件

热门文章

  1. [SCOI2003]严格N元树
  2. Xml和Tomcat
  3. 树莓派 Zero WH 初使用体验
  4. oracle 基础查询语句
  5. 20165220预备作业3 Linux安装及学习
  6. 使用rsyslog+loganalzey收集日志显示客户端ip
  7. 13. ZooKeeper最佳实践
  8. Java Web(八) MVC和三层架构
  9. POCO c++ 使用例子
  10. linux移植简介[MS2]