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;
}
}