update
This commit is contained in:
parent
fee4e50f03
commit
b0c9fe405a
@ -5,7 +5,7 @@ using namespace std;
|
||||
const int MAX_N=10000+5;
|
||||
int sh,sm,eh,em,W,n;
|
||||
int w[MAX_N],v[MAX_N],c[MAX_N];
|
||||
int dp[MAX_N][MAX_N];
|
||||
int dp[MAX_N];
|
||||
|
||||
int main(){
|
||||
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
|
||||
@ -22,15 +22,15 @@ int main(){
|
||||
for(int i=1;i<=n;i++){
|
||||
if(c[i]==0){
|
||||
for(int j=w[i];j<=W;j++){
|
||||
dp[i][j]=max(dp[i-1][j],dp[i][j-w[i]]+v[i]);
|
||||
dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
|
||||
}
|
||||
}else{
|
||||
for(int j=1;j<=c[i];j++){
|
||||
for(int j=W;j>=w[i];j--){
|
||||
for(int k=1;k*w[i]<=j&&k<=c[i];k++){
|
||||
dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]*k]+v[i]*k);
|
||||
dp[j]=max(dp[j],dp[j-k*w[i]]+v[i]*k);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
cout<<dp[n][W]<<endl;
|
||||
cout<<dp[W]<<endl;
|
||||
}
|
44
day13/P1855/P1855.cpp
Normal file
44
day13/P1855/P1855.cpp
Normal file
@ -0,0 +1,44 @@
|
||||
#include <algorithm>
|
||||
#include <cctype>
|
||||
#include <cstdio>
|
||||
#include <iostream>
|
||||
#include <ostream>
|
||||
using namespace std;
|
||||
|
||||
const int MAX = 200+5;
|
||||
int n,M,T;
|
||||
int m[MAX],t[MAX];
|
||||
int readint();
|
||||
int dp[MAX][MAX];
|
||||
|
||||
int main(){
|
||||
n=readint(),M=readint(),T=readint();
|
||||
for(int i=1;i<=n;i++){
|
||||
m[i]=readint(),t[i]=readint();
|
||||
}
|
||||
for(int i=1;i<=n;i++){
|
||||
for(int j=M;j>=1;j--){
|
||||
for(int k=T;k>=1;k--){
|
||||
dp[j][k] = dp[j][k];
|
||||
if(j>=m[i]&&k>=t[i]){
|
||||
dp[j][k] = max(dp[j][k],dp[j-m[i]][k-t[i]]+1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
cout<<dp[M][T]<<endl;
|
||||
}
|
||||
|
||||
int readint(){
|
||||
int x=0,w=1;
|
||||
char ch=0;
|
||||
while(!isdigit(ch)){
|
||||
if(ch=='-')w=-1;
|
||||
ch=getchar();
|
||||
}
|
||||
while(isdigit(ch)){
|
||||
x=x*10+(ch-'0');
|
||||
ch=getchar();
|
||||
}
|
||||
return x*w;
|
||||
}
|
Loading…
Reference in New Issue
Block a user