#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <math.h>
#include <string>
#include <string.h>
#include <vector>
#include <queue>
#include <stack>
#include <sstream>
using namespace std;
//1364
struct Node{
int v;
int p;
}zy[101];
int dp[101][1001];
int s,c;
int main(){
// freopen("input.txt","r",stdin);
while(cin>>s>>c){//s代表总空间,c代表炸药个数
for(int i=1;i<=c;i++){
cin>>zy[i].v>>zy[i].p;
}
for(int i=1;i<=s;i++)
dp[0][i]=0;
for(int i=1;i<=c;i++){
for(int j=s;j>=zy[i].v;j--){
dp[i][j]=max(dp[i-1][j],dp[i-1][j-zy[i].v]+zy[i].p);
}
for(int j=zy[i].v-1;j>=1;j--){
dp[i][j]=dp[i-1][j];
}
}
cout<<dp[c][s]<<endl;
}
return 0;
}
/**************************************************************
Problem: 1364
User: cust123
Language: C++
Result: Accepted
Time:250 ms
Memory:1916 kb
****************************************************************/
题目1364:v字仇杀队
最新推荐文章于 2022-05-16 16:56:03 发布