[kuangbin带你飞]专题七 线段树 E HDU 1698
来源:互联网 发布:淘宝寄错东西怎么办 编辑:程序博客网 时间:2024/05/20 23:57
题目地址:https://vjudge.net/contest/66989#problem/E
思路:区间更新为特定值。套了一下之前的lazy操作的模板,结果样例都过不了。各种查,最后才发现,位运算要加括号啊!!
AC代码:
#include<bits/stdc++.h>using namespace std;const int maxn=1e5+10;struct seq{ int l,r,n,add;}T[maxn*4];void build(int l,int r,int k){ T[k].l=l,T[k].r=r,T[k].add=0; if(l==r) { T[k].n=1; return; } int mid=(l+r)>>1; build(l,mid,k<<1); build(mid+1,r,k<<1|1); T[k].n=T[k<<1].n+T[k<<1|1].n;}void PushDown(int k,int m){ if(T[k].add) { T[k<<1].add=T[k<<1|1].add=T[k].add; T[k<<1].n=T[k].add*(m-(m>>1)); T[k<<1|1].n=T[k].add*(m>>1); T[k].add=0; }}void update(int l,int r,int n,int k){ if(l==T[k].l && r==T[k].r) { T[k].add=n; //printf("%d\n",k); T[k].n=n*(r-l+1); return; } if(T[k].l==T[k].r) return; PushDown(k,T[k].r-T[k].l+1); int mid=(T[k].l+T[k].r)>>1; if(l>mid) update(l,r,n,k<<1|1); else if(r<=mid) update(l,r,n,k<<1); else { update(l,mid,n,k<<1); update(mid+1,r,n,k<<1|1); } T[k].n=T[k<<1].n+T[k<<1|1].n; //printf("%d %d\n",T[k].n,k);}int main(){ int t; scanf("%d",&t); for(int casei=1;casei<=t;casei++) { int n; scanf("%d",&n); build(1,n,1); int m; scanf("%d",&m); while(m--) { int a,b,c; scanf("%d%d%d",&a,&b,&c); update(a,b,c,1); //printf("\n"); } printf("Case %d: The total value of the hook is %d.\n",casei,T[1].n); }}
0 0
- [kuangbin带你飞]专题七 线段树 E HDU 1698
- [kuangbin带你飞]专题七 线段树 E
- [kuangbin带你飞]专题七 线段树 【A、B、C、E、G、H】
- [kuangbin带你飞]专题七 线段树
- [kuangbin带你飞]专题七 线段树 H HDU4027
- [kuangbin带你飞]专题七 线段树 B
- [kuangbin带你飞]专题七 线段树 A
- [kuangbin带你飞]专题七 线段树 C
- [kuangbin带你飞]专题七 线段树 F
- [kuangbin带你飞]专题七 线段树 A HDU 1166
- [kuangbin带你飞]专题七 线段树 B HDU 1754
- [kuangbin带你飞]专题七 线段树 I HDU 1540
- [kuangbin带你飞]专题七 线段树 J HDU 3974
- [kuangbin带你飞]专题七 线段树 H HDU-4027
- [kuangbin带你飞]专题七 线段树 ABCDE 题解,持续更新
- [kuangbin带你飞]专题七 线段树 C POJ 3468
- [kuangbin带你飞]专题七 线段树 D POJ 2528
- [kuangbin带你飞]专题七 线段树 G POJ 3264
- BZOJ2087 [Poi2010]Sheep
- Fiddler抓包中文乱码问题
- 原型模式
- supervisord监控服务常用技巧
- C#数组_160921
- [kuangbin带你飞]专题七 线段树 E HDU 1698
- Grunt自动化web前端开发环境工具
- 第十五章上机练习4
- Leetcode 26 Remove Duplicates from Sorted Array
- 持续集成工具ant 入门使用指南
- jquery读书笔记(一)
- 禁止屏幕旋转
- MyEclipse updating indexes有什么用?
- 关于VC6和VS2008预编译的报错处理