CF1934B题解
原题传送门
题目概述
你有
思路分析
这道题可以用暴力枚举+贪心的方式解决,但是直接枚举肯定超时,所以我们要减少枚举范围。例如为了让硬币数量最小,一元最多只能拿
代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t,n;
cin>>t;
while(t--)
{
int ans=0x3f3f3f3f;
cin>>n;
//枚举:
for(int i1=0;i1<=2;i1++)
{
for(int i2=0;i2<=1;i2++)
{
for(int i3=0;i3<=4;i3++)
{
for(int i4=0;i4<=2;i4++)
{
int s=n-i1-i2*3-i3*6-i4*10;
if(s>=0&&s%15==0)//满足条件剩下能用15元补充
{
ans = min(ans,i1+i2+i3+i4+(s/15));
}
}
}
}
}
cout<<ans<<endl;
}
return 0;
}