码迷,mamicode.com
首页 > 其他好文 > 详细

123

时间:2019-04-19 19:57:27      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:algo   names   ++   with   mes   main   const   lse   bit   

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
#include<stack>
#include<bitset>
#include<cstdlib>
#include<cmath>
#include<set>
#include<list>
#include<deque>
#include<map>
#include<queue>
#define ll long long int
using namespace std;
inline ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
inline ll lcm(ll a,ll b){return a/gcd(a,b)*b;}
int moth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int dir[4][2]={1,0 ,0,1 ,-1,0 ,0,-1};
int dirs[8][2]={1,0 ,0,1 ,-1,0 ,0,-1, -1,-1 ,-1,1 ,1,-1 ,1,1};
const int inf=0x3f3f3f3f;
const ll mod=1e9+7;
int dp[10007];
struct node{
    int s,times;
    friend bool operator < (node a,node b){
        return a.s>b.s;
    }
};
node p[10007];
int vis[10007];
int main(){
    ios::sync_with_stdio(false);
    int n,k;
    cin>>n>>k;
    for(int i=0;i<k;i++){
        cin>>p[i].s>>p[i].times;
        vis[p[i].s]=1;
    }
        
    sort(p,p+k);
    int num=0;
    for(int i=n;i>=1;i--){
        if(vis[i]){
            int j;
            for(j=num;;j++){
                if(j!=num&&p[j-1].s!=p[j].s)
                    break;
                dp[i]=max(dp[i],dp[i+p[j].times]);
            }
            num=j;
        }else{
            dp[i]=dp[i+1]+1;
        }
    }
    cout<<dp[1]<<endl; 
    return 0;
}

123

标签:algo   names   ++   with   mes   main   const   lse   bit   

原文地址:https://www.cnblogs.com/wmj6/p/10738124.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!