bzoj1537
dp+树状数组
一维排序,一维离散化,然后跑lis,其实就是一个二维偏序
- #include<bits/stdc++.h>
- using namespace std;
- const int N = ;
- 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 = ;
- 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 = ; 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 = ; i <= k; ++i) a[i].y = lower_bound(vt.begin(), vt.end(), a[i].y) - vt.begin() + ;
- m = vt.size() + ;
- sort(a + , a + k + );
- for(int i = ; 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 ;
- }
bzoj1537的更多相关文章
- BZOJ1537: [POI2005]Aut- The Bus
1537: [POI2005]Aut- The Bus Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 158 Solved: 100[Submit][S ...
- bzoj千题计划148:bzoj1537: [POI2005]Aut- The Bus
http://www.lydsy.com/JudgeOnline/problem.php?id=1537 朴素的转移:dp[i][j]=max(dp[i][j-1],dp[i-1][j])+p[i][ ...
- 「BZOJ1537」Aut – The Bus(变形Dp+线段树/树状数组 最优值维护)
网格图给予我的第一反应就是一个状态 f[i][j] 表示走到第 (i,j) 这个位置的最大价值. 由于只能往下或往右走转移就变得显然了: f[i][j]=max{f[i-1][j], f[i][j-1 ...
- [转载]hzwer的bzoj题单
counter: 664BZOJ1601 BZOJ1003 BZOJ1002 BZOJ1192 BZOJ1303 BZOJ1270 BZOJ3039 BZOJ1191 BZOJ1059 BZOJ120 ...
- BZOJ刷题列表【转载于hzwer】
沿着黄学长的步伐~~ 红色为已刷,黑色为未刷,看我多久能搞完吧... Update on 7.26 :之前咕了好久...(足见博主的flag是多么emmm......)这几天开始会抽时间刷的,每天几道 ...
随机推荐
- django2
八 Models 数据库的配置 1 django默认支持sqlite,mysql, oracle,postgresql数据库. <1> sqlite django默认使用sqlit ...
- Leetcode 188.买卖股票的最佳时机IV
买卖股票的最佳时机IV 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 k 笔交易. 注意: 你不能同时参与多笔交易(你必 ...
- HDU-5583-Kingdom of Black and White(2015ACM/ICPC亚洲区上海站-重现赛)
Kingdom of Black and White ...
- oracle exp direct 执行机制
使用直接导出模式 direct=y exp 比传统模式导出快一倍 oracle提供2种模式导出表数据,传统模式CONVENTIONAL PATH和直接模式DIRECT PATH,有direct指定. ...
- 莫(meng)比(bi)乌斯反演--BZOJ2301: [HAOI2011]Problem b
n<=50000个询问,每次问a<=x<=b,c<=y<=d中有多少gcd(x,y)=K的(x,y).a,b,c,d,K<=50000. 这大概是入门题辣..这里记 ...
- msp430入门编程03
msp430的C标识符和关键字 msp430入门学习 msp430入门编程
- NIST的安全内容自动化协议(SCAP)以及SCAP中文社区简介
https://blog.csdn.net/langkew/article/details/8795530?utm_source=tuicool&utm_medium=referral
- 找宝箱 (bfs)
Problem Description 作为一个强迫症患者,小 Y 在走游戏里的迷宫时一定要把所有的宝箱收集齐才肯罢休.现在给你一个 N *M 的迷宫,里面有障碍.空地和宝箱,小 Y 在某个起始点,每 ...
- SOJ 2818_QQ音速
[题意]两只手,一次只能用一只手按一个键子(0,1,2,3),给出从i键到j键所需的消耗的体力,求依次按下一系列键子所需最小体力. [分析] 法一:开一个三维数组,分别记录移动到位置及左右手按的键子. ...
- Evaluate Reverse Polish Notation(逆波兰式)
Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, ...