HDU 1698
来源:互联网 发布:excel数据怎么排序 编辑:程序博客网 时间:2024/05/18 01:05
线段树,手痒,又写了一题,我的作业,我作业落下好多了,就是不想安静下来看书
#include<iostream>using namespace std;const int MAX=100001;struct T{int l,r,m,va;}tree[MAX*3];void Build_tree(int root,int l,int r){tree[root].l=l;tree[root].r=r;tree[root].m=(l+r)>>1;if(l==r){tree[root].va=1;return ;}tree[root].va=-1;Build_tree(root<<1,l,tree[root].m);Build_tree(root<<1|1,tree[root].m+1,r);}void Updata(int root,int l,int r,int va){if(tree[root].l==l&&tree[root].r==r){tree[root].va=va;return ;}if(tree[root].va!=-1){tree[root<<1].va=tree[root<<1|1].va=tree[root].va;tree[root].va=-1;}if(r<=tree[root].m)Updata(root<<1,l,r,va);else if(l>tree[root].m)Updata(root<<1|1,l,r,va);else{Updata(root<<1,l,tree[root].m,va);Updata(root<<1|1,tree[root].m+1,r,va);}}int Query(int root){if(tree[root].va!=-1){return (tree[root].r-tree[root].l+1)*tree[root].va;}return Query(root<<1)+Query(root<<1|1);}int main(){int t,m,n,l,r,va;int tt=1;scanf("%d",&t);while (t--){scanf("%d",&n);Build_tree(1,1,n);scanf("%d",&m);while (m--){scanf("%d%d%d",&l,&r,&va);Updata(1,l,r,va);}printf("Case %d: The total value of the hook is %d.\n",tt++,Query(1));}return 0;}
- hdu 1698
- hdu 1698
- hdu 1698
- hdu 1698
- HDU 1698
- HDU 1698
- hdu 1698
- hdu 1698
- hdu 1698
- hdu 1698
- hdu 1698
- hdu 1698
- hdu 1698
- hdu 1698
- hdu 1698
- hdu-1698
- hdu 1698
- HDU 1698
- Android 新手listview小示例(一)
- Android 新手listview小示例(二)
- hdu 3033 I love sneakers!(DP)
- 如何使用C#发送电子邮件
- EVE登录
- HDU 1698
- 大姐家坎坎坷坷的建房路
- 2013年 微软面试题目
- JSP2.0中Simple Tag介绍(更加多的例子)
- Java字符集
- Android调用天气预报的WebService简单例子
- vs2010 用ATL创建com组件
- WebService学习:使用Xfire创建WebService程序的过程
- ACM 1324. Score