竞赛
考级
法兰西玫瑰
man!what can I say! AC OUT! include<bits/stdc++.h> using namespace std; int t,m; int c[105],v[105]; int dp[105][1005]; int main(){ cin>>t>>m; for(int i=1;i<=m;i++){ cin>>c[i]>>v[i]; } for(int i=1;i<=m;i++){ for(int j=1;j<=t;j++){ dp[i][j] = dp[i-1][j]; if(j>=c[i]) dp[i][j] = max( dp[i-1][j] , dp[i-1][j-c[i]]+v[i]); } } cout<<dp[m][t]; return 0; }
耐摔王old big
#include<bits/stdc++.h> using namespace std; int p[1005];//price int w[1005];//time int dp[1005][1005]; int main(){ int n , m; cin >> n >> m; for(int i = 1;i <= m;i++){ cin >> w[i];//time cin >> p[i];//price } for(int i = 1;i <= m;i++){//枚举pill数 for(int j = 1;j <= n;j++){//枚举time //dp方程转移式 if(w[i] <= j) dp[i][j] = max(dp[i-1][j],dp[i-1][j-w[i]]+p[i]); else dp[i][j] = dp[i-1][j]; } } cout<<dp[m][n]; return 0; }
DARK SPECTRE
#include<bits/stdc++.h> using namespace std; int main(){ int t,m; int w[1003],c[1003],dp[1003][1003]; cin>>t>>m; for(int i=1;i<=m;i++){ cin>>c[i]>>w[i]; } for(int i=1;i<=m;i++){ for(int j=0;j<=t;j++){ if(j<c[i]){ dp[i][j]=dp[i-1][j];//确定当前状态 }else{ dp[i][j]=max(dp[i-1][j-c[i]]+w[i],dp[i-1][j]);//动态规划方程式 } } } cout<<dp[m][t]; return 0; }
8888888888
经典01背包(话说不是已经有了这道题吗)?
zhouty
#include<bits/stdc++.h> using namespace std; int main(){ int n,m,dp[1029],w[129],v[129]; cin>>m>>n; for(int i=1;i<=n;i++) cin>>w[i]>>v[i]; for(int i=1;i<=n;i++){ for(int j=m;j>=w[i];j--) dp[j]=max(dp[j],dp[j-w[i]]+v[i]); } cout<<dp[m]; return 0; }
138****7494
#include<bits/stdc++.h> using namespace std; int w[1001],c[101],dp[101][1001]; int main() { int m,n; cin>>m>>n; for(int i=1;i<=n;i++) { cin>>w[i]>>c[i]; } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(j<w[i]) dp[i][j]=dp[i-1][j]; else dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+c[i]); } } cout<<dp[n][m]; return 0; }
2.71828182845904