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......)这几天开始会抽时间刷的,每天几道 ...
随机推荐
- SSL 握手协议详解
这里重点介绍一下服务端的验证和密钥交换.这个阶段的前面的(a)证书 和(b)服务器密钥交换是基于密钥交换方法的.而在SSL中密钥交换算法有6种:无效(没有密钥交换).RSA.匿名Diffie-Hell ...
- 最近编译POCO 库和 Boost库的笔记
最近在编译POCO库和BOOST库 先讲一下编译POCO库,我编译的是1.9.0,过程相当曲折,要OPENSSL修改版本的,个OPENSSL在这里下载,如果你用一般未修改的OPENSSL 是编译不了, ...
- Ubuntu12.04之SSH
Ubuntu 12.04 关于SSH的知识 (1)安装完ubuntu系统12.04. (2)查看网络配置,输入命令ip addr后,显示有IP地址. (3)使用SSH终端工具Xshell连接系统,发现 ...
- 2017 CCPC 杭州 HDU6265B 积性函数
题目链接 http://acm.hdu.edu.cn/downloads/CCPC2018-Hangzhou-ProblemSet.pdf B题 数论题 h(n)=∑ d|n φ(d) × ...
- int *ptr=(int *)(&a+1)问题的探讨
从网络上看到这样一道有意思的题目,是关于数组与指针的问题,描述如下: main() { ]={,,,,}; ); printf(),*(ptr-)); } 输出为:2,5 请解释以上代码的输出结果. ...
- Oldboy 基于Linux的C/C++自动化开发---MYSQL
http://www.eimhe.com/forum.php?mod=viewthread&tid=142952#lastpost http://www.eimhe.com/thread-14 ...
- MongoDB小结15 - find【查询条件$ne】
$ne表示不相等 db.user.find({"name":{"$ne":"william"}})
- 对一个deb包的解压、改动、又一次打包全过程方法
/********************************************************************* * Author : Samson * Date ...
- UVa 340 Master-Mind Hints(猜数字游戏的提示)
题意 猜数字游戏 统计猜的数字有多少个数字位置正确 有多少个数字在答案中出现可是位置不对 每一个字符仅仅能匹配一次 直接匹配每位数 #include<cstdio> #includ ...
- Java中Comparator接口和Comparable接口的使用
普通情况下在实现对对象元素的数组或集合进行排序的时候会用到Comparator和Comparable接口,通过在元素所在的类中实现这两个接口中的一个.然后对数组或集合调用Arrays.sort或者Co ...