链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1698
分析与总结:
我的第一道线段树成段更新题... 看刘汝佳大白书+傻崽的代码学习的
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define mid ((left+right)>>1)
#define lson rt<<1,left,mid
#define rson rt<<1|1,mid+1,right
#define int64 long long
using namespace std;
const int MAXN = 100005;
int n,m;
int sum[MAXN<<2],col[MAXN<<2];
inline void push_up(int rt){
sum[rt] = sum[rt<<1] + sum[rt<<1|1];
}
inline void push_down(int rt,int m){
if(col[rt]){
col[rt<<1] = col[rt<<1|1] = col[rt];
sum[rt<<1] = (m-(m>>1)) * col[rt];
sum[rt<<1|1] = (m>>1) * col[rt];
col[rt] = 0;
}
}
void build(int rt,int left,int right){
col[rt] = 0;
sum[rt] = 1;
if(left==right)return;
build(lson);
build(rson);
push_up(rt);
}
void update(int rt,int left,int right,int l,int r,int data){
if(l<=left && right<=r) {
col[rt] = data;
sum[rt] = data*(right-left+1);
return;
}
push_down(rt, right-left+1);
int m = mid;
if(l <= m) update(lson,l,r,data);
if(r > m) update(rson,l,r,data);
push_up(rt);
}
int main(){
int T,x,y,z,cas=1;
scanf("%d", &T);
while(T--){
scanf("%d%d",&n,&m);
build(1,1,n);
for(int i=0; i<m; ++i){
scanf("%d%d%d",&x,&y,&z);
update(1,1,n,x,y,z);
}
printf("Case %d: The total value of the hook is %d.\n",cas++,sum[1]);
}
return 0;
}
—— 生命的意义,在于赋予它意义士。
原创http://blog.csdn.net/shuangde800,By
D_Double (转载请标明)
分享到:
相关推荐
hdu 1166线段树代码
hdu 1166线段树
从简单入门到偏中等的几个题,线段树很灵活,主要懂了lazy操作,其他的自己yy吧。
【hdu5306】Gorgeous Sequence 线段树区间最值操作-附件资源
大量线段树题目 zoj 1610 线段覆盖 poj 2777 线段覆盖 ...hdu 1698 成段更新 poj 3468 成段更新 ural 1019 覆盖加统计最长同一个颜色 zoj 2301 和上一题差不多,但是这个染色染的是点,注意染色为空的状况
线段树入门资料,有利于初学者学习,让他们详细了解线段树。
NULL 博文链接:https://128kj.iteye.com/blog/1738772
HDU的1250,主要是利用高精度加法,但是代码有点繁琐,效率不是很高
杭电ACMhdu1163
300+ AC 代码 。 大数 , 线段树 , 字符串 , dp.....
HDU1059的代码
hdu1001解题报告
hdu 1574 passed sorce
现在,给你两个正的小数A和B,你的任务是代表大明计算出A+B的值。 Input 本题目包含多组测试数据,请处理到文件结束。 每一组测试数据在一行里面包含两个长度不大于400的正小数A和B。 Output 请在一行里面...
HDU的一题........HDU DP动态规
题面 【题目描述】 有nnn个营地,已知每个营地的人数,有四条命令: (1)Add(1) Add(1)Add iii jjj,iii和jjj为正整数,表示第iii个营地增加jjj个人(jjj不超过303030) (2)Sub(2)Sub(2)Sub iii jjj ,iii和jjj为正...
hdu2101AC代码
hdu acm 教案 搜索入门 hdu acm 教案 搜索入门
搜索 dfs 解题代码 hdu1241