TOJ 2776 CD Making

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


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

注意一下这几个数据:

13 15 输出为2

28 15 输出为2


附代码:

#include <iostream>
using namespace std;
int main()
{
    int ca;
    double ans,Song,acd;
    cin>>ca;
    while(ca--)
    {
        cin>>Song>>acd;
        ans=0;
        if(acd==13)
            ans=Song/(acd-1);
        else if((int)Song%(int)acd==13)
           {
                 if(acd>14&&Song/acd>1)ans =Song/acd;//最容易拉掉的情况;
                 else ans=Song/acd+1;
           }
        else ans=Song/acd;
        cout<<(ans>(int)(ans)?int(ans+1):ans)<<endl;
    }
}


你可能感兴趣的:(TOJ)