Vijos1881 闪烁的繁星
题目描述:N个数,有0/1两种状态,Q个操作:(1)置反单点状态;(2)查询最长交错序列长度(相邻的状态不同)
N<=200,000,Q<=200,000
解析:一开始把偶数位取反,这样就变成了维护一条最长的连续序列。每个节点维护它的前缀和后缀和和最长连续序列长度。
代码
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
struct point
{int val;int h;int q;
}s[800010];
int n,q,x;
int a[200010];
void build(int node,int l,int r)
{s[node].h=s[node].q=s[node].val=1;if(l==r)return;int mid=(l+r)/2;build(node*2,l,mid);build(node*2+1,mid+1,r);
}
void change(int node,int l,int r,int x)
{if(l==r){a[l]=1-a[l];return;}int mid=(l+r)/2;if(x<=mid)change(node*2,l,mid,x);elsechange(node*2+1,mid+1,r,x);int ans1=0;s[node].q=s[node*2].q;s[node].h=s[node*2+1].h;if(a[mid]==a[mid+1]){ans1=s[node*2].h+s[node*2+1].q;if(mid-l+1==s[node*2].q)s[node].q=max(s[node].q,s[node*2].q+s[node*2+1].q);if(r-mid==s[node*2+1].h)s[node].h=max(s[node].h,s[node*2+1].h+s[node*2].h);}int ans2=max(s[node*2].val,s[node*2+1].val);s[node].val=max(ans1,ans2);
}
int main()
{scanf("%d%d",&n,&q);for(int i=1;i<=n;i++)if(i%2==0)a[i]=1;build(1,1,n);for(int i=1;i<=q;i++){scanf("%d",&x);change(1,1,n,x);printf("%d\n",s[1].val);}return 0;
}
Vijos1881 闪烁的繁星相关推荐
- VIJOS国庆节模拟赛之繁星春水
1 P1881 闪烁的繁星 分治,维护几个结果即可. #include <cstdio> #include <iostream> using namespace std;con ...
- 计算机学院运动会解说词,学校运动会解说词30篇
[导语]现在向主席台走来的是我们班级,男孩和女孩组成了这个充满朝气的集体.他们的班级目标是团结奋斗,永不后退,希望之星,挑战未来!在今天的运动场上,他们将齐心协力,挑战第一.瞧,他们的笑脸是多么灿烂, ...
- 云享·人物丨造梦、探梦、筑梦,三位开发者在华为云上的寻梦之旅
摘要:走近华为云开发者日HDC.Cloud Day,看三位特别的开发者用技术改变世界,用创造力让生活更美好. 本文分享自华为云社区<云享·人物丨造梦.探梦.筑梦,三位开发者在华为云上的寻梦之旅& ...
- java写满天繁星,描写满天繁星唯美句子
1.没有月亮,繁星像是大荷叶上的露珠似的闪烁着. 2.在我们相识的那夜,月朗星疏,夜空,特别的娇俏:因为有你,点点繁星,妩媚妖娆:在我们相识的那天,看那艳阳满天,彩云朵朵,我在想:那应该是你的温情弥漫 ...
- php网页报告2500字,教你写作文2500字
教你写作文 时间:2014-12-02 字数:2500字 1 记叙文开头方式见下. 2 最好有主次之分,有重点地介绍其中一个事例,另一个事例就当作丰富文章内涵的辅助材料.如果事例应用得当,会给文章加分 ...
- 人类的征途是星辰大海,玉兔的征途从月球开始
晴朗的夜晚 仰望夜空 闪烁的繁星 带来无限遐想 宇宙--人类文明伊始, 就已是世代不休探索梦. 从古希腊的星座,到中国古代的星宿, 人类依靠想象, 一遍又一遍的在心中描绘宇宙. 探索宇宙真理是人类的终 ...
- 既然选择了远方,便只顾风雨兼程----汪国真的诗
热爱生命 我不去想是否能够成功 既然选择了远方 便只顾风雨兼程 我不去想能否赢得爱情 既然钟情于玫瑰 就勇敢地吐露真诚 我不去想身后会不会袭来寒风冷雨 既然目标是地平线 留给世界的只能是背影 我不去想 ...
- 【转】追问《我的团长我的团》
本文系转载,原文链接:http://ent.sina.com.cn/v/m/2009-04-02/ba2452210.shtml 版权归<三联生活周刊>及作者所有. 追问<我的团长 ...
- 用计算机撩对象,2020适合撩对象的甜句子集锦
当你拥有一个对象不知道怎么去让她开心的时候,可以学几句甜句子逗她开心.今天小编整理了2020适合撩对象的甜句子集锦,一起来看看吧! 2020适合撩对象的甜句子集锦1 1. 只要是喜剧收尾,过程你让我怎 ...
最新文章
- 一文搞懂select语句在MySQL中的执行流程!
- .NET Core微服务 权限系统+工作流(一)权限系统
- 限制 计算机中 某用户上网 win7,利用win7限制上网时间的方法
- 如何在32位程序中突破地址空间限制使用超过4G的内存
- 《深入理解 Spring Cloud 与微服务构建》第四章 Dubbo
- 用于CRUD和更多的模型驱动的RESTful API
- 未能找到文件“\bin\roslyn\csc.exe”
- 在linux下挂载ios镜像文件,linux下挂载iso镜像文件
- 恒温控制系统单片机仿真c语言,基于51单片机的恒温控制系统
- python异常捕获_Python 异常的捕获、异常的传递与主动抛出异常操作示例
- SQL:postgresql求多个点组成的多边形的geom数据
- Linux禁用文件可执行权限
- 鲍威尔法源程序码matlab,十一、Powell算法(鲍威尔算法)原理以及实现
- 安卓 手机硬改 工具下载 一键新机 改串 抹机 root隐藏 改串号MEID imei SN信息 工具教程分享
- iPhone 快捷指令 文本朗读
- SQL零基础入门学习(七)
- 有道词典_每日一句_2019/09
- vue自定义指令directives同时传递多个参数
- windows系统下,如何使用win+R快速打开安装的应用
- 社保html源码,社保查询.html