FOJ 1608 Huge Mission 线段树
2015-11-04 22:01
423 查看
每个节点维护一个最小值,更新发现如果大于最小值,直接向下更新。速度还可以。。
View Code
#include<cstdio> #include<algorithm> #include<iostream> #include<cstring> #include<vector> #include<stack> #include<cmath> #include<queue> #include<map> using namespace std; const int maxn=50005; int sum[maxn<<2],b[maxn<<2]; void pushup(int rt) { sum[rt]=sum[rt*2]+sum[rt*2+1]; b[rt]=min(b[rt*2],b[rt*2+1]); } void change(int rt,int l,int r,int x,int y,int c) { int m=(l+r)>>1; if(l==r) { sum[rt]=b[rt]=c; return; } if(x<=m&&b[rt*2]<c)change(rt*2,l,m,x,y,c); if(y>m&&b[rt*2+1]<c)change(rt*2+1,m+1,r,x,y,c); pushup(rt); } int main() { int n,m; while(~scanf("%d%d",&n,&m)) { int x,y,z; memset(sum,0,sizeof(sum)); memset(b,0,sizeof(b)); for(int i=0; i<m; i++) { scanf("%d%d%d",&x,&y,&z); change(1,1,n,x+1,y,z); } printf("%d\n",sum[1]); } return 0; }
View Code
相关文章推荐
- 基带信号、载波信号和宽带信号
- 五猴分桃问题详解
- OC基础知识 -- 类和对象
- 将jeecms中微信后台功能和前台认证以及接收消息的功能,修改为插件形式
- 动态规划求最长递增子序列(longest increasing subsequence)
- hdu2547 无剑无我
- hdoj3975Easy Fruit Ninja
- Tiny6410+K9GAG08U0E
- 修改MySQL默认数据库存放路径
- leetcode-Valid Anagram
- AngularJS API之equal比较对象
- Ubuntu 14.04数据库服务器--mysql的安装和配置
- 《编写有效用例》第二篇阅读体会
- 浅谈 Swift 2 中的 Objective-C 指针
- node在安装完成后,出现node不是内部或外部命令
- BOM
- C++11新特性之 CALLBACKS
- lightoj 1116 - Ekka Dokka 【分解因子】
- lightoj 1078 - Integer Divisibility 【同余】
- lightoj 1020 - A Childhood Game 【博弈】