bzoj1537

dp+树状数组

一维排序,一维离散化,然后跑lis,其实就是一个二维偏序

#include<bits/stdc++.h>
using namespace std;
const int N = 200010;
int dp[N], tree[N];
struct data {
    int x, y, p;
    inline bool friend operator < (data A, data B)
    {
        return A.x == B.x ? A.y < B.y : A.x < B.x;
    }
} a[N];
int n, m, k, ans;
inline int lowbit(int i)
{
    return i & (-i);
}
inline void update(int pos, int delta)
{
    for(int i = pos; i <= m; i += lowbit(i)) tree[i] = max(tree[i], delta);
}
inline int query(int pos)
{
    int ret = 0;
    for(int i = pos; i; i -= lowbit(i)) ret = max(ret, tree[i]);
    return ret;
}
int main()
{
    scanf("%d%d%d", &n, &m, &k);
    vector<int> vt;
    for(int i = 1; i <= k; ++i)
    {
        scanf("%d%d%d", &a[i].x, &a[i].y, &a[i].p);
        vt.push_back(a[i].y);
    }
    sort(vt.begin(), vt.end());
    vt.erase(unique(vt.begin(), vt.end()), vt.end());
    for(int i = 1; i <= k; ++i) a[i].y = lower_bound(vt.begin(), vt.end(), a[i].y) - vt.begin() + 1;
    m = vt.size() + 10;
    sort(a + 1, a + k + 1);
    for(int i = 1; i <= k; ++i)
    {
        dp[i] = query(a[i].y) + a[i].p;
        ans = max(ans, dp[i]);
        update(a[i].y, dp[i]);
    }
    printf("%d\n", ans);
    return 0;
}

时间: 2024-12-14 00:22:47

bzoj1537的相关文章

bzoj1537 [POI2005]Aut- The Bus

Description Byte City 的街道形成了一个标准的棋盘网络 – 他们要么是北南走向要么就是西东走向. 北南走向的路口从 1 到 n编号, 西东走向的路从1 到 m编号. 每个路口用两个数(i, j) 表示(1 <= i <= n, 1 <= j <= m). Byte City里有一条公交线, 在某一些路口设置了公交站点. 公交车从 (1, 1) 发车, 在(n, m)结束.公交车只能往北或往东走. 现在有一些乘客在某些站点等车. 公交车司机希望在路线中能接到尽量多

大神刷题表

9月27日 后缀数组:[wikioi3160]最长公共子串 dp:NOIP2001统计单词个数 后缀自动机:[spoj1812]Longest Common Substring II [wikioi3160]最长公共子串 [spoj7258]Lexicographical Substring Search 扫描线+set:[poj2932]Coneology 扫描线+set+树上删边游戏:[FJOI2013]圆形游戏 结论:[bzoj3706][FJ2014集训]反色刷 最小环:[poj1734

[转载]hzwer的bzoj题单

counter: 664BZOJ1601 BZOJ1003 BZOJ1002 BZOJ1192 BZOJ1303 BZOJ1270 BZOJ3039 BZOJ1191 BZOJ1059 BZOJ1202 BZOJ1051 BZOJ1001 BZOJ1588 BZOJ1208 BZOJ1491 BZOJ1084 BZOJ1295 BZOJ3109 BZOJ1085 BZOJ1041 BZOJ1087 BZOJ3038 BZOJ1821 BZOJ1076 BZOJ2321 BZOJ1934 BZOJ