hdu 4614——Vases and Flowers
来源:互联网 发布:顶级中文域名有哪些 编辑:程序博客网 时间:2024/05/21 20:34
线段树
线段树太渣了,看别人代码恶补下。http://www.cnblogs.com/aukle/archive/2013/07/26/3217639.html
#include<iostream>#include<cstdio>using namespace std;#define maxn 50010#define ls (rt<<1)#define rs (rt<<1|1)#define mid ((t[rt].l+t[rt].r)>>1)//注意加括号!! int n,m;struct tree{ int l,r; int sum; int lazy;}t[maxn<<2];void pushup(int rt){t[rt].sum=t[ls].sum+t[rs].sum;}void pushdown(int rt){if(t[rt].lazy==0){t[rt].lazy=-1;t[ls].sum=0;t[rs].sum=0;t[ls].lazy=0;t[rs].lazy=0;}else if(t[rt].lazy==1){t[rt].lazy=-1;t[ls].sum=t[ls].r-t[ls].l+1;t[rs].sum=t[rs].r-t[rs].l+1;t[ls].lazy=1;t[rs].lazy=1;}}void build(int rt,int l,int r){t[rt].sum=1,t[rt].l=l,t[rt].r=r,t[rt].lazy=-1;if(l==r)return;build(ls,l,mid);build(rs,mid+1,r);pushup(rt);}int query(int rt,int l,int r){if(t[rt].l==l&&t[rt].r==r)return t[rt].sum;pushdown(rt);if(l>mid)return query(rs,l,r);elseif(r<=mid)return query(ls,l,r);elsereturn query(ls,l,mid)+query(rs,mid+1,r);}void change(int rt,int l,int r,int val){if(t[rt].l==l&&t[rt].r==r){if(val==0)t[rt].sum=0;elset[rt].sum=r-l+1;t[rt].lazy=val;return ;}pushdown(rt);if(l>mid)change(rs,l,r,val);elseif(r<=mid)change(ls,l,r,val);elsechange(ls,l,mid,val),change(rs,mid+1,r,val);pushup(rt);}int main(){int t;int x,a,b;cin>>t;while(t--){scanf("%d%d",&n,&m);build(1,0,n-1);while(m--){scanf("%d%d%d",&x,&a,&b);if(x==1){int sum=query(1,a,n-1);if(sum==0)printf("Can not put any one.\n");else{if(sum<b)b=sum;int s,e;int l=a,r=n-1;int m;while(l<=r){m=(l+r)>>1;if(query(1,a,m)>=1){s=m;r=m-1;}elsel=m+1;}l=a,r=n-1;while(l<=r){m=(l+r)>>1;if(query(1,a,m)>=b){e=m;r=m-1;}elsel=m+1;}change(1,s,e,0);printf("%d %d\n",s,e);}}else{printf("%d\n",b-a+1-query(1,a,b));change(1,a,b,1);}}printf("\n");}return 0;}
- hdu 4614——Vases and Flowers
- HDU 4614 Vases and Flowers——线段树+二分
- hdu 4614 Vases and Flowers
- hdu 4614 Vases and Flowers
- HDU 4614 Vases and Flowers
- hdu 4614 Vases and Flowers
- hdu 4614 Vases and Flowers
- HDU-4614-Vases and Flowers
- HDU 4614 Vases and Flowers
- HDU 4614 Vases and Flowers
- HDU 4614 Vases and Flowers
- HDU 4614 Vases and Flowers
- Vases and Flowers HDU
- Vases and Flowers HDU
- Vases and Flowers HDU
- HDU 4614 Vases and Flowers 解题报告
- hdu 4614 Vases and Flowers 线段树
- HDU 4614(Vases and Flowers)
- sqlplus 链接数据库
- 话说Session 和Cookie
- Source folder ''{0}'' in project ''{2}'' cannot output to distinct source folder
- 使用大量checkbox的时候可能出现的小问题
- 认识USB OTG miniAB
- hdu 4614——Vases and Flowers
- 查找单链表中倒数第k个结点||旋转单链表
- 转载:PostgreSQL-XC : Data Replication or Distribution
- vim编辑器简单使用
- 【Java学习笔记】基础知识学习19【一个大文件的复制方法】
- 2013腾讯编程马拉松初赛第〇场(3月20日) 吉哥系列故事——临时工计划---带权重的区间规划
- java中的日期及其格式化
- USB 基本知识
- 转载:Implement Postgres-XC 0.9.7 with 8 servers