CF1934B Yet Another Coin Problem 题解
CF1934B Yet Another Coin Problem 题解
题意
目前有
思路
这道题,大多数的人大概会想到动态规划的方法。
但是,我们应该有敢于创新的精神。于是我就想到了一个简单的数学方法。
首先我们先不讨论面值等于
考虑硬币的面值为
1:面值为 元的硬币的数量范围小于 。
当使用大于等于
则可以用面值为
2:面值为 元的硬币的数量范围小于 。
当使用大于等于
则可以用面值为
3:面值为 元的硬币的数量范围小于 。
当使用大于等于
则可以用
4:面值为 元的硬币的数量范围小于 。
当使用大于等于
则可以用
5:面值为 的硬币。
剩下的数目都有面值为
时间复杂度
因为前面的数值都很少,所以时间复杂度也十分小。
代码
#include <bits/stdc++.h>
using namespace std;
int n,t,ans;
int main() {
cin>>t;
while(t--){
cin>>n;
ans=1000000000;
for(int i=0;i<3;i++)
for(int j=0;j<2;j++)
for(int k=0;k<5;k++)
for(int m=0;m<3;m++){
int y=i*1+j*3+k*6+m*10;
if(y>n)continue;
if((n-y)%15==0){
ans=min(ans,i+j+k+m+(n-y)/15);
}
}
cout<<ans<<endl;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步