原文链接:https://www.luogu.com.cn/problem/P1280
AC代码:
#include<iostream>
#include<string.h>
#include<vector>
#include<algorithm>
using namespace std;
int dp[10005];
int n,k;
vector<int> vec[10005];
int main(){
int i,j;
memset(dp,0,sizeof(dp));
cin>>n>>k;
for(i=0;i<k;i++){
int p,q;
cin>>p>>q;
vec[p].push_back(q);
}
for(i=n;i>0;i--){
if(vec[i].size()>0){
for(j=0;j<vec[i].size();j++){
dp[i]=max(dp[i],dp[i+vec[i][j]]);
}
}
else{
dp[i]=dp[i+1]+1;
}
}
cout<<dp[1]<<endl;
return 0;
}