国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

cdoj 31 飯卡(card) 01背包

2019-11-08 01:45:04
字體:
來源:轉載
供稿:網友

點擊打開鏈接

思路:01背包,跑容量為m-5,物品為n-1件的01背包。貪心:用剩下的5元買最貴的

轉移:dp[i][j] = max(dp[i-1][j],dp[i-1][j-c[i]]+c[i],滾動優化一下就好了

代碼:

#include <bits/stdc++.h>using namespace std;const int maxn = 1e3+10;int c[maxn],dp[50005];int main(){	int n,m;	while(cin>>n,n){		for(int i=1; i<=n; i++)			cin >> c[i];		cin >> m;		if(m<5){               cout<<m<<endl;            continue;        }		sort(c+1,c+1+n);		memset(dp,0,sizeof(dp));		for(int i=1; i<n; i++){			for(int j=m-5; j>=c[i]; j--){				dp[j] = max(dp[j],dp[j-c[i]]+c[i]);			}		}		int ans = m-(dp[m-5]+c[n]);		cout << ans << endl;	}}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 徐水县| 新田县| 靖西县| 出国| 轮台县| 苗栗县| 泰和县| 壤塘县| 宾阳县| 瓮安县| 郸城县| 临泽县| 顺平县| 南投市| 龙山县| 额敏县| 宽甸| 榆社县| 绥阳县| 贵州省| 湟中县| 泰来县| 永兴县| 界首市| 永修县| 普格县| 邢台县| 蒙自县| 乌苏市| 霍州市| 九龙城区| 清水县| 外汇| 福安市| 靖远县| 井陉县| 宜兴市| 南昌市| 海兴县| 台东市| 福安市|