链接 https://acm.uestc.edu.cn/problem/cd-making/description
依据k分两种情况:k<=13时不用解释;
k>13时,若n整除k,k除n即为答案,若不能整除,要注意n%k=13的情况,此时若k>=15,则只需多取一张CD来存放剩余歌曲,例如k=15,n=43,此时一种放法为(15,14,14)而不是(15,15,12,1)。但若k=14则需多取两张CD。
其他细节参考代码。
#include<bits/stdc++.h> using namespace std; int main() { int t,n,k,ans; cin>>t; while(t--){ cin>>n>>k; if(k<13){ ans=n/k+1; if(n%k==0) ans--; } else if(k==13){ ans=n/12+1; if(n%12==0) ans--; } else{ ans=n/k; n=n%k; if(n==0); else if(0<n&&n<13) ans++; else if(n==13){ if(k==14) ans+=2; else{ if(ans>0) ans++; else ans+=2;//注意n<k的情况 } } else ans++; } cout<<ans<<endl; } return 0; }