传送原题
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<queue>
#include<math.h>
#include<string.h>
#include<sstream>
using namespace std;
int a[] = {150,200,350};
int dp[10005];
int main() {ios::sync_with_stdio(false);int t, money;cin >> t;while(t --){memset(dp,0,sizeof(dp));cin >> money;for(int i = 0; i < 3; i ++)for(int j = a[i]; j <= money; j ++)dp[j] = max(dp[j], dp[j-a[i]] + a[i]);cout << money - dp[money] << endl;}return 0;
}
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<queue>
#include<math.h>
#include<string.h>
#include<sstream>
using namespace std;
int a[] = {150,200,350};
int dp[10005];
int main() {ios::sync_with_stdio(false);int t, money;cin >> t;while(t --){memset(dp,0,sizeof(dp));int Max = 0;cin >> money;for(int i = 0; i < 3; i ++)for(int j = a[i]; j <= money; j += 50){//最大公因数dp[j] = max(dp[j], dp[j-a[i]] + a[i]);Max = max(Max,dp[j]);//防止出现不是整数啥的}cout << money - Max << endl;}return 0;
}
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态