现在的位置: 首页 > 综合 > 正文

【bzoj 1537】: [POI2005]Aut- The Bus

2017年04月25日 ⁄ 综合 ⁄ 共 1722字 ⁄ 字号 评论关闭

http://www.lydsy.com/JudgeOnline/problem.php?id=1537

水题一道,不过zky神犇的代码果然与众不同,模(chao)仿(xi)了下

//#define _TEST _TEST
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <map>
using namespace std;
/************************************************
Code By willinglive
************************************************/
/////////////////////////////////////////////////
#define rep(i,l,r) for(int i=l,___t=(r);i<=___t;i++)
#define per(i,r,l) for(int i=r,___t=(l);i>=___t;i--)
#define MS(arr,x) memset(arr,x,sizeof(arr))
#define LL long long
#define INE(i,u,e) for(int i=head[u];~i;i=e[i].next)
inline const int getint()
{
    int r=0,k=1;char c=getchar();
    for(;c<'0'||c>'9';c=getchar())if(c=='-')k=-1;
    for(;c>='0'&&c<='9';c=getchar())r=r*10+c-'0';
    return k*r;
}
/////////////////////////////////////////////////
int n,m,k;
struct point
{
	int x,y,p;
}pt[100010];
map<int,int>M;
int c[100010];
int dp[100010];
/////////////////////////////////////////////////
bool cmp(const point &a,const point &b)
{return a.y==b.y?a.x<b.x:a.y<b.y;}
void add(int id,int x){for(;id<=k;id+=id&-id)if(c[id]<x)c[id]=x;}
int query(int id){int res=0;for(;id>0;id-=id&-id)if(res<c[id])res=c[id];return res;}
/////////////////////////////////////////////////
void input()
{
    scanf("%d%d%d",&n,&m,&k);
    rep(i,1,k) pt[i].x=getint(),pt[i].y=getint(),pt[i].p=getint(),
               M[pt[i].x]=1;
}
void solve()
{
    sort(&pt[1],&pt[k+1],cmp);
    int cnt=0;
    for(map<int,int>::iterator it=M.begin();it!=M.end();it++)
        it->second=++cnt;
    rep(i,1,k) pt[i].x=M[pt[i].x];
    rep(i,1,k)
    {
    	dp[i]=query(pt[i].x)+pt[i].p;
    	add(pt[i].x,dp[i]);
    }
    printf("%d\n",*max_element(dp+1,dp+1+k));
}
/////////////////////////////////////////////////
int main()
{
    #ifndef _TEST
    freopen("std.in","r",stdin); freopen("std.out","w",stdout);
    #endif
    input();
    solve();
    return 0;
}
【上篇】
【下篇】

抱歉!评论已关闭.