poj2777 线段树
//Accepted 4768 KB 391 ms //线段树,延时标记的应用 //对于每一段,用一个int表示被着色的情况,change标记该段的颜色是否发生整体的改变,即这一段 //用没用被全部涂成令一种颜色 #include <cstdio> #include <cstring> #include <iostream> #include <queue> #include <cmath> #include <algorithm> using namespace std; /** * This is a documentation comment block * 如果有一天你坚持不下去了,就想想你为什么走到这儿! * @authr songt */ ; struct node { int l,r; int color; bool change; }f[imax_n*]; void build(int t,int l,int r) { f[t].l=l; f[t].r=r; f[t].change=; f[t].color=<<; if (l==r) { return ; } ; build(*t,l,mid); build(*t+,mid+,r); } int query(int t,int l,int r) { if (f[t].l==l && f[t].r==r) { return f[t].color; } ) { f[*t].color=f[t].color; f[*t+].color=f[t].color; f[*t].change=f[*t+].change=; f[t].change=; } ; *t,l,r); else { *t+,l,r); else { *t,l,mid); *t+,mid+,r); return t1|t2; } } } void update(int t,int l,int r,int c) { if (f[t].l==l && f[t].r==r) { f[t].change=; f[t].color=<<c; return ; } ) { f[*t].color=f[t].color; f[*t+].color=f[t].color; f[t].change=; f[*t].change=f[*t+].change=; } ; *t,l,r,c); else { *t+,l,r,c); else { update(*t,l,mid,c); update(*t+,mid+,r,c); } } f[t].color=f[*t].color|f[*t+].color; } int n; int T; int Q; ]; int x,y,c; void swap(int &x,int &y) { int t=x; x=y; y=t; } void slove() { build(,,n); ;i<=Q;i++) { scanf("%s",s); ]=='C') { scanf("%d%d%d",&x,&y,&c); if (x>y) swap(x,y); update(,x,y,c); } else { scanf("%d%d",&x,&y); if (x>y) swap(x,y); ,x,y); ; ) { ans++; t-=(t&(-t)); } printf("%d\n",ans); } } } int main() { while (scanf("%d%d%d",&n,&T,&Q)!=EOF) { slove(); } ; }
poj2777 线段树的更多相关文章
- poj-2777线段树刷题
title: poj-2777线段树刷题 date: 2018-10-16 20:01:07 tags: acm 刷题 categories: ACM-线段树 概述 这道题是一道线段树的染色问题,,, ...
- Count Color poj2777 线段树
Count Color poj2777 线段树 题意 有一个长木板,现在往上面在一定区间内刷颜色,后来刷的颜色会掩盖掉前面刷的颜色,问每次一定区间内可以看到多少种颜色. 解题思路 这里使用线段树,因为 ...
- POJ2777(线段树涂色问题)
Count Color Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 42828 Accepted: 12973 Des ...
- poj2777(线段树)
题目链接:https://vjudge.net/problem/POJ-2777 题意:有L块连续的板子,每块板子最多染一种颜色,有T种(<=30)颜色,刚开始将所有板子染成颜色1,O次操作(包 ...
- Count Color(线段树+位运算 POJ2777)
Count Color Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 39917 Accepted: 12037 Descrip ...
- [POJ2777]Count Color(线段树)
题目链接:http://poj.org/problem?id=2777 给你一个长为L想线段,向上面染色,颜色不超过30种,一共有O次操作,操作有两种: C a b c 在[a,b]上染上c颜色 P ...
- POJ-2777 Count Color(线段树,区间染色问题)
Count Color Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 40510 Accepted: 12215 Descrip ...
- 几道简单的线段树入门题 POJ3264&&POJ3468&&POJ2777
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 40687 Accepted: 19137 ...
- POJ 2777(线段树)
Count Color Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 42507 Accepted: 12856 Des ...
随机推荐
- SAP MM常用表
EBAN 采购申请 MM模块EBAN_采购申请 EBKN 采购申请帐户设置 MM模块EBKN_采购申请帐户设置 EBUB 有关物料的运输请求的索引 MM模块EBUB_有关物料的运输请求的索引 EINA ...
- Jquery如何获得<iframe>嵌套页面中的元素
DOM方法:父窗口操作IFRAME:window.frames["iframeSon"].documentIFRAME操作父窗口: window.parent.documentjq ...
- noip赛前小结2
嗯...赛前的第二份小结. 总结一下应该做的几个事情就好了. (1)关于做题顺序 做题顺序是很重要的. 开始的时候先审题,看清数据范围什么的,随便想一想,大概估计一下自己的得分. 第二题再把每道题仔细 ...
- [saiku] 配置saiku实时展现查询数据
缘起: 在默认的情况下,saiku是不能对数据进行实时展现的,只能通过刷新按钮或者重启服务器来刷新数据 这样以来会有很多的麻烦,每天得手动去刷新,这个操作只有管理员可以操作,在刷新以前客户看到的都是缓 ...
- python 写入csv文件
import csv fieldnames = ['Column1', 'Column2', 'Column3', 'Column4'] rows = [{'Column1': '0', 'Col ...
- python中的popen和subprocess
import os from subprocess import Popen, PIPE res = os.popen('xx.exe E:\\test\\file1 E:\\test\\file2' ...
- sh脚本异常:bad interpreter: No such file or directory
转:http://bluedest.iteye.com/blog/1674963 在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file o ...
- uva-----11292 The Dragon of Loowater
Problem C: The Dragon of Loowater Once upon a time, in the Kingdom of Loowater, a minor nuisance tur ...
- 5月23日 JavaScript练习:累加求和
第一种方法: 第二种方法:
- mysql 索引长度限制
MyISAM存储引擎引键的长度综合不能超过1000字节 InnoDB单列索引长度不能超过767bytes,联合索引还有一个限制是3072