1 solutions
-
0
C++ :
#include<iostream> #include<cstdio> using namespace std; int f[110][110],a[110][110];//先钱后人品 int n,rp[110],sj[110],q[110],m,r,o,t=0x3fffffff; int main() { //freopen("gf.in","r",stdin); //freopen("gf.out","w",stdout); scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d%d%d",&q[i],&rp[i],&sj[i]); } scanf("%d%d",&m,&r);//m钱r人品 for(int u=1;u<=n;u++) for(int i=m;i>=q[u];i--) for(int y=r;y>=rp[u];y--) { if(f[i][y]==f[i][y-1]&&a[i][y]>a[i][y-1]) { a[i][y]=a[i][y-1]; } if(f[i][y]==f[i-1][y]&&a[i][y]>a[i-1][y]) { a[i][y]=a[i-1][y]; } if(f[i][y]<f[i][y-1]) { f[i][y]=f[i][y-1]; a[i][y]=a[i][y-1]; } if(f[i][y]<f[i-1][y]) { f[i][y]=f[i-1][y]; a[i][y]=a[i-1][y]; } if(f[i][y]==f[i-q[u]][y-rp[u]]+1&&a[i][y]>a[i-q[u]][y-rp[u]]+sj[u]) a[i][y]=a[i-q[u]][y-rp[u]]+sj[u]; if(f[i][y]<f[i-q[u]][y-rp[u]]+1) { f[i][y]=f[i-q[u]][y-rp[u]]+1; a[i][y]=a[i-q[u]][y-rp[u]]+sj[u]; } } printf("%d",a[m][r]); //while(1); }
- 1
Information
- ID
- 18459
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By