1 条题解
-
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
信息
- ID
- 3220
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者