首页 > 代码库 > HDU - 1248 寒冰王座(完全背包做法和暴力优化做法)
HDU - 1248 寒冰王座(完全背包做法和暴力优化做法)
题意:完全背包裸题
每件物品的cost就是它的value。
1.完全背包法
1 #include <iostream> 2 using namespace std; 3 4 const int maxn=11111; 5 int dp[maxn]; 6 7 int main(){ 8 int t; 9 cin>>t; 10 int value[4]={0,150,200,350}; 11 while(t--){ 12 int n; 13 cin>>n; 14 for(int i=1;i<=3;i++){ 15 for(int j=value[i];j<=n;j++){ 16 dp[j]=max(dp[j],dp[j-value[i]]+value[i]); 17 } 18 } 19 cout<<n-dp[n]<<endl; 20 } 21 return 0; 22 }
2.暴力优化法(转):
这种方法就是暴力出所有的不给小费的情况 最多就200个 所以不会超时
可以发现350以后,只要是50的倍数 就会付0小费 所以我们也可以把我下面复杂的暴力过程去掉//=.=厉害了!
1 #include<stdio.h> 2 int main(){ 3 int t,n; 4 int list[6]={0,50,100,0,0,50}; 5 scanf("%d",&t); 6 while(t--){ 7 scanf("%d",&n); 8 if(n<300) printf("%d\n",n%50+list[n/50]); 9 else printf("%d\n",n%50); 10 } 11 return 0; 12 }
HDU - 1248 寒冰王座(完全背包做法和暴力优化做法)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。