[kuangbin带你飞]专题七 线段树 E
来源:互联网 发布:网络直播现象研究 编辑:程序博客网 时间:2024/05/20 23:39
D貌似要用离散化的思想,还不会,下次补。
#include <iostream>#include <cstdio>#include <cstring>#define lid (id << 1)#define rid (id << 1 | 1)using namespace std;const int maxn = 1e5+6;int n,a[maxn],q;struct node{ int l,r; long long sum,lazy; void updata(long long x) { sum = (r-l+1)*x; //修改 lazy=x; }} tr[maxn*4];void push_up(int id){ tr[id].sum=tr[lid].sum+tr[rid].sum;}void push_down(int id){ int lazyvalue=tr[id].lazy; if(lazyvalue) { tr[lid].updata(lazyvalue); tr[rid].updata(lazyvalue); tr[id].lazy=0; }}void build(int id,int l,int r){ tr[id].l=l,tr[id].r=r,tr[id].lazy=0; if(l==r) tr[id].sum=1; else { int mid=(l+r)/2; build(lid,l,mid); build(rid,mid+1,r); push_up(id); }}void updata(int id,int l,int r,long long val){ if(l==tr[id].l&&tr[id].r==r) tr[id].updata(val); else { push_down(id); int mid = (tr[id].l+tr[id].r)>>1; if(r<=mid) updata(lid,l,r,val); else if (l>mid) updata(rid,l,r,val); else { updata(lid,l,mid,val); updata(rid,mid+1,r,val); } push_up(id); }}long long query_sum(int id,int l,int r){ if(l==tr[id].l&&tr[id].r==r) return tr[id].sum; else { push_down(id); int mid = (tr[id].l+tr[id].r)/2; if(r<=mid) return query_sum(lid,l,r); else if(l>mid) return query_sum(rid,l,r); else return query_sum(lid,l,mid)+query_sum(rid,mid+1,r); push_up(id); }}int main(){ int m,ca,num=1; scanf("%d",&m); while(m--){ scanf("%d%d",&n,&ca); build(1,1,n); while(ca--){ int l,r,x; scanf("%d%d%d",&l,&r,&x); updata(1,l,r,x); } printf("Case %d: The total value of the hook is %d.\n",num++,query_sum(1,1,n)); } return 0;}
阅读全文
0 0
- [kuangbin带你飞]专题七 线段树 E
- [kuangbin带你飞]专题七 线段树 E HDU 1698
- [kuangbin带你飞]专题七 线段树 【A、B、C、E、G、H】
- [kuangbin带你飞]专题七 线段树
- [kuangbin带你飞]专题七 线段树 H HDU4027
- [kuangbin带你飞]专题七 线段树 B
- [kuangbin带你飞]专题七 线段树 A
- [kuangbin带你飞]专题七 线段树 C
- [kuangbin带你飞]专题七 线段树 F
- [kuangbin带你飞]专题七 线段树 ABCDE 题解,持续更新
- [kuangbin带你飞]专题七 线段树 A HDU 1166
- [kuangbin带你飞]专题七 线段树 B HDU 1754
- [kuangbin带你飞]专题七 线段树 C POJ 3468
- [kuangbin带你飞]专题七 线段树 D POJ 2528
- [kuangbin带你飞]专题七 线段树 G POJ 3264
- [kuangbin带你飞]专题七 线段树 I HDU 1540
- [kuangbin带你飞]专题七 线段树 J HDU 3974
- [kuangbin带你飞]专题七 线段树 题解(未完)
- 【C】 结构体与结构体指针,->在C语言中的唯一用途
- 爬取微博对话语料制作聊天机器人
- Hibernate优化方案
- Java配置实现AOP
- POJ3281(最大流)
- [kuangbin带你飞]专题七 线段树 E
- House Robber III:打家劫舍 在二叉树结构中取非相邻元素求和取最大
- 图灵机器人加入微信公众号
- 解决:使用create-react-app构建react应用很慢
- 微信小程序-Icon图标
- 命名空间“Microsoft.Office”中不存在类型或命名空间名称“Interop”。是否缺少程序集引用?
- 【JVM】内存小结
- 利用闪回功能恢复删除(drop,delete)的数据和表及数据,update之后数据恢复
- redis.conf配置文件详解(转载)