洛谷P4979 矿洞:坍塌
珂朵莉树吼啊!!!
又是一道水题,美滋滋~~~
$A$操作完全模板区间赋值
$B$操作也是一个模板查询,具体看代码
注意:读入不要用$cin$,会$T$,如果你是大佬,会玄学东西当我没说
代码:
#include<iostream>
#include<cstdio>
#include<set>
#include<algorithm>
#define N 500007
#define Set set<Node>::iterator
using namespace std;
struct Node
{
int l,r;
mutable char val;
Node(int L,int R,char V):l(L),r(R),val(V){}
Node(int L):l(L){}
bool operator < (const Node &it)const
{
return l<it.l;
}
};
set<Node> st;
int n,m;
#define isupper(x) ((x) >= 'A' && (x) <= 'Z')
inline char rchar() {
char c = getchar();
while (!isupper(c)) c = getchar();
return c;
}
Set Split(int x)
{
Set it=st.lower_bound(Node(x));
if(it!=st.end()&&it->l==x)
return it;
--it;
int L=it->l,R=it->r;
char V=it->val;
st.erase(it);
st.insert(Node(L,x-1,V));
return st.insert(Node(x,R,V)).first;
}
void Change(int l,int r,char v)
{
Set rr=Split(r+1),ll=Split(l);
st.erase(ll,rr);
st.insert(Node(l,r,v));
}
bool Search(int l,int r)
{
Set rr=Split(r+1),ll=Split(l);
char now=ll->val;
++ll;
for(Set it=ll;it!=rr;++it)
if(it->val!=now)
return 0;
return 1;
}
bool Ok(int l,int r)
{
Set rr=Split(r+1),ll=Split(l);
--ll;
if(ll->val==rr->val)
return 0;
else
return 1;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;++i)
{
char in;
in=rchar();
st.insert(Node(i,i,in));
}
st.insert(Node(n+1));
scanf("%d",&m);
for(int i=1;i<=m;++i)
{
char opt,v;
int x,y;
opt=rchar();
scanf("%d%d",&x,&y);
if(opt=='A')
{
v=rchar();
Change(x,y,v);
}
else
{
if(Search(x,y))
{
if(x==1||y==n)
{
printf("Yes\n");
}
else
{
if(Ok(x,y))
printf("Yes\n");
else
printf("No\n");
}
}
else
printf("No\n");
}
}
return 0;
}
洛谷P4979 矿洞:坍塌的更多相关文章
- 【题解】Luogu P4979 矿洞:坍塌
原题传送门:P4979 矿洞:坍塌 这是某场膜你赛的题,最后我一百零几分rank三十几滚粗 这是我唯一ac的一题 这题比较简单qaq 前置芝士:珂朵莉树 窝博客里对珂朵莉树的介绍 没什么好说的自己看看 ...
- 洛谷1640 bzoj1854游戏 匈牙利就是又短又快
bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...
- 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.
没有上司的舞会 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...
- 洛谷P1108 低价购买[DP | LIS方案数]
题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...
- 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP
题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...
- 洛谷P1710 地铁涨价
P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交 讨论 题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...
- 洛谷P1371 NOI元丹
P1371 NOI元丹 71通过 394提交 题目提供者洛谷OnlineJudge 标签云端评测 难度普及/提高- 提交 讨论 题解 最新讨论 我觉得不需要讨论O long long 不够 没有取 ...
- 洛谷P1538迎春舞会之数字舞蹈
题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...
- 洛谷八月月赛Round1凄惨记
个人背景: 上午9:30放学,然后因为学校举办读书工程跟同学去书城选书,中午回来开始打比赛,下午又回老家,中间抽出一点时间调代码,回家已经8:50了 也许是7月月赛时“连蒙带骗”AK的太幸运然而因同学 ...
随机推荐
- Photon Server LoadBalancing搭建
准备:申请3台Windows虚拟机. 3台虚拟机上都部署上Photon Server. 一.主虚拟机上部署MasterServer. (1)在第一台虚拟机中,部署的Photon Server目目录下找 ...
- HTNL基础之二
HTML实体字符 “<”:< “>”:> “空格”: ' / / ' “"”:" “®”:® “©”:© 列表 ①无序列表:列表用来在网页上组织信息, ...
- Python基础『一』
内置数据类型 数据名称 例子 数字: Bool,Complex,Float,Integer True/False; z=a+bj; 1.23; 123 字符串: String '123456' 元组: ...
- S03_CH03_AXI_DMA_OV7725摄像头采集系统
S03_CH03_AXI_DMA_OV7725摄像头采集系统 3.1概述 本课程讲解如何搭建基于DMA的图形系统,方案原理如下. 摄像头采样图像数据后通过DMA送入到DDR,在PS部分产生DMA接收中 ...
- .Net C# Dictionary 和参数字符串互转
#region Parse #region Dictionary Parse To String /// <summary> /// Dictionary Parse To String ...
- uva 10325基础容斥
题目:给你一个数n以及m个数字,问1~n中不能被这m个数字整除的数字的个数. 分析:容斥原理.组合数学.数字1-n中能被a.b整除的数字的个数分别是n/a,n/b: 则1-n中能被a或b整数的数字个数 ...
- Python字符串的常用方法总结
tring.capitalize() 把字符串的第一个字符大写 string.center(width) 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串 , end=len(str ...
- C# 中使用正则表达式 Regex.Matches方法的几个应用[转]
用于正则表达式的 Regex.Matches静态方法的几种用法: //①正则表达式 = > 匹配字符串 string Text = @"This is a book , this is ...
- linux Linux入门
Linux入门 Linux学习什么? 常用命令(背会) 软件安装(熟练) 服务端的架构(开开眼界) Linux如何学习? 不要问那么多为什么,后面你就懒得问了 先尝试理解一下,不行就背下来 一个知识点 ...
- VUE【三、指令】
模板指令 1.数据渲染(对应data数据) {{a}} 当使用v-once指令时,数据会一次绑定,后续修改值不会变化 v-text="a" 等同于{{a}} v-html=&quo ...