题目毁灭者.黄题篇.钞票问题
2025-08-17 18:47:54
发布于:浙江
3阅读
0回复
0点赞
不难发现,
if(i<5){
dp[i]=i;
}
if(i>=5 and i<11){
dp[i]=min(i,dp[i-5]+1);
}
if(i>=11){
dp[i]=min(min(i,dp[i-5]+1),dp[i-11]+1);
}
其实dp就是状态转移公式+循环
#include<bits/stdc++.h>
using namespace std;
int n;
int main(){
cin>>n;
int dp[n+5]={0};
for(int i=0;i<n+5;i++){
if(i<5){
dp[i]=i;
}
if(i>=5 and i<11){
dp[i]=min(i,dp[i-5]+1);
}
if(i>=11){
dp[i]=min(min(i,dp[i-5]+1),dp[i-11]+1);
}
}
cout<<dp[n];
return 0;
}
这里空空如也
有帮助,赞一个