zoukankan      html  css  js  c++  java
  • TOJ 2776 CD Making

    TOJ 2776题目链接http://acm.tju.edu.cn/toj/showp2776.html

    这题其实就是考虑的周全性。。。  贡献了好几次WA, 后来想了半天才知道哪里有遗漏。最大的问题就是, 当零头是13的时候, 不一定前面的光盘都刻录到最大值。比如29,16这种情况, 如果前面的刻录最大值,这样就需要3个盘,而最少的却是 2个就够了,(15,14) 即可;知道这种情况,这题基本就可以了;

    注意一下这几个数据:

    13 15 输出为2

    29 16 输出为2

     

    这条题目看起来很容易,但是特殊情况很多。稍微考虑得不全面,就会有情况没有考虑到。


    我们按b来分类:

    1如果b<=12,那很爽,直接a/b就可以;

    2如果b=13,那也很爽,直接把b当成12做就可以;

    3如果b=14,如果最后一张CD里放了13首歌,那就只好再来一张;

    4如果b>=15,如果最后一张CD里放了13首歌,不需要再来一张CD,从前一张里放一首在最后一张即可;

    但是这样就有一个问题,如果只有1张CD,没有前面一张。这种情况下只有加一张CD。

    至此,所有的可能性都讨论到了。

     

    #include<iostream>
    using namespace std;
    
    int main()
    {
        int group;
        cin >> group;
        
        while(group > 0)
        {   int a = 0;
            int b = 0;
            int c = 0;
            
            group--;
            
            cin >> a >> b;
            int sum = 0;
            
            if(b == 13)//b==13的情况 
              b = 12;
            sum = a / b;
             c = a % b;
            if(c!=0)
              sum = sum + 1;
            
            if(c == 13&&(b==14||sum==1))//注意此处   
            //if(c==13)//这样不对 
               sum = sum + 1;
            cout << sum << endl;
            
        }
        return 0;
     }
  • 相关阅读:
    1.c语言程序设计--c语言概述/vs2015安装使用
    DerpNStink----靶机渗透学习4
    一生清贫怎敢入繁华
    python篇------>建立socket连接
    loadoftheroot靶机--靶机渗透学习
    socks代理总结篇
    cobalt strike内网穿透
    netsh端口转发(windows自带,免杀)
    Cobal Strike-taowu梼杌详细介绍
    变量的解构赋值
  • 原文地址:https://www.cnblogs.com/wft1990/p/6233229.html
Copyright © 2011-2022 走看看