```cpp
#include<bits/stdc++.h>
using namespace std;
int sum[10001],a[10001][10001],f[10001],n,k,num=0;
int main(){
// int sum=0;
scanf("%d%d",&n,&k);
int q,w;
for(int i=0;i<=n;i++){
sum[i]=0;
f[i]=0;
}
for(int i=1;i<=k;i++){
scanf("%d%d",&q,&w);
a[q][++sum[q]]=w;
}
for(int i=n;i>=0;i--){
if(sum[i]==0)f[i]=f[i+1]+1;
else if(sum[i]==1){
f[i]=f[i+a[i][1]];
}
else
{
for(int j=1;j<=sum[i];j++){
if(f[i+a[i][++num]]>f[i]){
f[i]=f[i+a[i][num]];
}
}
num=0;
}
}
cout<<f[1];
}
```
by 渣旺子 @ 2019-06-27 18:04:34
希更展?使Md。
by 警策看取 @ 2019-06-27 18:05:14
@[lianjiaming](/space/show?uid=177435) ???
by 渣旺子 @ 2019-06-27 18:14:43
数组太大
by Retired_lvmao @ 2019-06-27 18:18:11
@[lv_mao_da_lao](/space/show?uid=133520) 但是数据范围就是这么大啊QAQ
by 渣旺子 @ 2019-06-27 18:23:52
优化。。。。~~(蒟蒻不会DP,只能这么说)~~
by Retired_lvmao @ 2019-06-27 18:24:47
@[渣旺子](/space/show?uid=60665) 开这莫大a[10001][10001]不MLE才怪,可以试试状压DP,和斜率优化
by charliegong @ 2019-06-27 18:31:32
@[渣旺子](/space/show?uid=60665) $a$ 数组用 $short$ 类型存。
by Cesare @ 2019-06-27 18:41:04
@[Cesare](/space/show?uid=104379) 第二个点和第十个MLe
by 渣旺子 @ 2019-06-27 18:46:32
@[渣旺子](/space/show?uid=60665) 应该用一维数组
by charliegong @ 2019-06-27 18:50:14