zoukankan      html  css  js  c++  java
  • HDU3573 Buy Sticks

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

      一开始用模拟,结果超时了,后面想想思路也是错的。这题应该是这样去考虑,现在想象我们是一个木匠师傅,现在要为客户来解决这个问题,当我拿到一根长为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 }

      

      

  • 相关阅读:
    idea 新建maven项目时,避免每次都需要指定自己的maven目录
    springboot2.X版本得@Transactional注解事务不回滚不起作用
    SpringBoot事务注解@Transactional
    #{}, ${}取值区别
    Mybaits多个参数的传递
    Mybaits基本的CURD操作
    mappers:将sql映射注册到全局配置中
    Mybaits配置多个数据库操作sql环境
    为java类起别名
    Mybaits成长之路
  • 原文地址:https://www.cnblogs.com/Lyush/p/2155593.html
Copyright © 2011-2022 走看看