|
|
|
|
讨论 Discussion |
|
| |
. |
#include<iostream>
#include<cstdio>
using namespace std;
int n,t,a[101]={0},v[101]={0},vm=0,km[101][1001]={0};
int f(int x,int s,int y){
if(x>n){if (y>vm)vm=y;
return 0;
}
if(y+v[x]<km[x][s-a[x]])return 0;
if(s>=a[x]) {
if(y+v[x]>=km[x][s-a[x]])km[x][s-a[x]]=y+v[x];
f(x+1,s-a[x],y+v[x]);
}
f(x+1,s,y);
}
int main(){
freopen("p1105.in","r",stdin);
freopen("p1105.out","w",stdout);
scanf("%d %d\n",&t,&n);
int i;
for(i=1;i<=n;i++){
scanf("%d %d",&a[i],&v[i]);
}
f(1,t,0);
printf("%d",vm);
fclose(stdin);
fclose(stdout);
}
( ) |
|
|
|
|
|
|
|
|
|
Flag |
|
题号 |
P1576 |
|
其它 |
通过 |
27人 |
提交 |
85次 |
通过率 |
32% |
难度 |
1 |
|
|
|
|
|
|