一个很朴素的问题,但是貌似以前没有接触到过,给定一个长度的棍子,现在要得到三种规格的棍子,每种若干条,问最少需要多少条长棍来分成三种棍子。

  一开始用模拟,结果超时了,后面想想思路也是错的。这题应该是这样去考虑,现在想象我们是一个木匠师傅,现在要为客户来解决这个问题,当我拿到一根长为75的木棍时,我肯定要物尽其极,最大利用率的截断方式是 75 = 20 + 20 + 32 次之 为 75 = 20 + 20 + 28 , 再者为 75 = 20 + 20 + 20, 这时截成三段,当然还可以截成两段,这时组合方式就没有关系了,因为前面已经算完了所有组成三段的可能,也就不许要考虑剩余的多少问题,两段两段截吧,如果最后留下一根木棍的任务,就要单独拿一根长棍了,所以干脆加上1除以2。

  代码如下:

 1 #include <cstring> 2 #include <cstdlib> 3 #include <cstdio> 4 #include <cmath> 5 using namespace std; 6  7 inline int Min( int x, int y ) 8 { 9     return x < y ? x : y;10 }11 12 int main()13 {14     int T;15     scanf( "%d", &T );16     for( int ti = 1; ti <= T; ++ti )17     {18         int ans = 0, a, b, c, t;19         scanf( "%d %d %d", &a, &b, &c );20         ans += ( t = Min( a / 2, c ) );21         a -= 2 * t, c -= t;22         ans += ( t = Min( a / 2, b ) );23         a -= 2 * t, b -= t;24         ans += ( t = a / 3 );25         a -= 3 * t;26         ans += ( a + b + c + 1 ) / 2;27         printf( "Case %d: %d\n", ti, ans );28     }29     return 0;30 }

  

  

HDU-3573 Buy Sticks相关推荐

  1. 【HDU - 1455】Sticks (dfs + 剪枝)

    题干: George took sticks of the same length and cut them randomly until all parts became at most 50 un ...

  2. HDU 3573(详解+思路+代码)

    Description Imyourgod need 3 kinds of sticks(树枝) which have different sizes: 20cm, 28cm and 32cm. Ho ...

  3. HDU 6438 Buy and Resell【贪心】

    http://acm.hdu.edu.cn/showproblem.php?pid=6438 Problem Description The Power Cube is used as a stash ...

  4. HDU Problem - 1455 Sticks

    题目链接 Problem Description George took sticks of the same length and cut them randomly until all parts ...

  5. hdu 1133 Buy the Ticket(递推+精度精算)

    做这道题之前可以先做:hdu 1267(递推方法和这道题是一样的知识没有精度计算)这是我的博客链接接:http://www.cnblogs.com/jiangjing/archive/2013/01/ ...

  6. 【ICPC-283】hdu 2126 Buy the souvenirs(二维0/1背包)

    点击打开链接hdu2126 思路: 二维0/1背包 分析: 1 题目给定n个物品的价钱和m的钱,问最多能买到的物品数有几种方案. 2 很明显就可以写出状态转移方程dp[i][j][k]表示的是前i个物 ...

  7. HDU - 1051 Wooden Sticks

    有一堆n个木棍.每个棒的长度和重量是预先知道的.木棒要用木工机械逐一加工.它需要一些时间,称为设置时间,机器准备加工一根棍子.安装时间与清洗操作和更换机器中的工具和形状有关.木工机床的安装时间如下: ...

  8. HDU 1133 Buy the Ticket

    题目大意:M+N个人排队买票,票的单价是50¥,每个人只能买一张. M个人拿50的去买,N个人拿100的去买,然后悲剧的是售票处开始的时候没有钱,所以如果拿100块买票人前面的拿50块买票的人小于或者 ...

  9. HDU - 6438 Buy and Resell(思维+ 贪心)

    题目链接 题意 t组输入,每组n个城市,给出每个城市的货物的价格,在每个城市可以进行三个操作:购买货物,卖出货物,不做操作,问从城市1到城市n(不能返回)最多能获得多少利润,且操作数最少(买和卖分别算 ...

最新文章

  1. jQuery案例(底部导航图片切换)
  2. gpasswd 命令详解
  3. 排好序的数组中,找出两数之和为m的所有组合
  4. java mvc建包结构_Java SSM框架的配置方法、MVC结构的分析、响应的流程
  5. RTSP协议分析(二)
  6. python的优点有哪些-Python为何这么火,究竟有哪些优势?
  7. Javascript之旅——第九站:吐槽function
  8. 各种PLC和触摸屏解密软件大全
  9. 破解入门(八)-----算法分析与注册机编写
  10. python gui设计_[原创]使用VB设计Python的GUI界面(Tkinter Designer) 附源码,[更新V1.5.1]...
  11. Execl锁定单元格
  12. 技嘉服务器主板按f1才能进系统,电脑开机要按F1或F2才能进入系统的解决方法
  13. 从键盘输入一个正整数 n,求 n!
  14. Java开发常用在线工具
  15. html table设置行高_单元格的行高怎么设置 html语言怎么设置设置表格行高?
  16. 十分详细的diff算法原理解析
  17. android开机字库加载过程,小米手机字库维修更换和EMMC字库编程烧写方法教程
  18. 哈尔滨工程大学计算机调剂信息,2018年哈尔滨工程大学信息与通信工程学院考研调剂信息:信息与通信工程、电子与通信工程方向...
  19. 树莓派进阶之路 (038) - P2P 文件下载机
  20. 当超跑「遇上」激光雷达,路特斯ELETRE背后还有哪些黑科技

热门文章

  1. git 只merge部分_[Skill]俩小时掌握多人开发中git的主要用法
  2. Java IO基础原理你该知道这些
  3. NSURLCache
  4. Android Action Bar 详解篇
  5. 计算机基础在小学的教学论文,小学基础教育论文范文
  6. datatables增删改查php,jQuery+datatables插件实现Ajax加载数据与增删改查功能示例_白峰_前端开发者...
  7. C语言求幺元的函数,离散数学实验指导书及其答案.doc
  8. Dockerfile镜像优化方案指引
  9. Docker学习(3)——安装部署过程及简单应用
  10. mfc只有doc才能序列化吗_MFC序列化-IMPLEMENT_SERIAL(...)