题目描述

乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过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. JSP页面中使用JSTL标签出现无法解析问题解决办法
  2. php 接口数组排序,php 数组排序
  3. 牛客网知识点总结(二
  4. Python基础-2 专用下划线标识符
  5. 斐波那契数列前n项和 c++_蹲在马桶看算法(Day8—LeetCode之NO.509 斐波那契数列)...
  6. 定义一个空切片_全面解读Python高级特性切片
  7. sql server序列_SQL Server中的Microsoft时间序列
  8. 全国软件专业人才开发与设计赛题之中等题“五位数黑洞”
  9. 12864c与语言字符显示,12864液晶显示C语言程序设计实例
  10. 陪集分解和J.Lagrange定理的一些应用
  11. 用Python实现《沉默的真相》3万+弹幕情感分析
  12. Linux中cd会进入什么位置,linux命令中cd/和cd命令是什么意思
  13. 观察者模式(java)浅析
  14. WARN Error while fetching metadata with correlation id 5 : {testtopic=LEADER_NOT_AVAILABLE}
  15. Jupyter notebook用谷歌浏览器打开
  16. 面向对象_猫狗案例加入跳高功能代码实现
  17. 永不言弃,希望就在前方
  18. 【matlab学习笔记】安装
  19. 十大跨平台移动应用开发工具
  20. 出纳通支票大小写不转换;或小写金额处显示全部为0;或者预置数据或票据查询等模块点击均没有反应如何修正?...

热门文章

  1. 论文阅读笔记 Word Embeddings A Survey
  2. 常用User-Agent大全 -《狗嗨默示录》-
  3. Linux/Windows 文件交互读取转义字符变换
  4. Python-函数递归-二分法
  5. 记一次mysql故障恢复
  6. 断开所有sql用户连接(转)
  7. (转)(c#)数据结构与算法分析 --递归
  8. 计算机中的颜色VI——从色相值到纯色的快速计算
  9. aspxgridview将所选项导出ASPxGridViewExporter1
  10. 推荐一个国外的关于奥运报道的网站.