题目描述: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 闪烁的繁星相关推荐

  1. VIJOS国庆节模拟赛之繁星春水

    1 P1881 闪烁的繁星 分治,维护几个结果即可. #include <cstdio> #include <iostream> using namespace std;con ...

  2. 计算机学院运动会解说词,学校运动会解说词30篇

    [导语]现在向主席台走来的是我们班级,男孩和女孩组成了这个充满朝气的集体.他们的班级目标是团结奋斗,永不后退,希望之星,挑战未来!在今天的运动场上,他们将齐心协力,挑战第一.瞧,他们的笑脸是多么灿烂, ...

  3. 云享·人物丨造梦、探梦、筑梦,三位开发者在华为云上的寻梦之旅

    摘要:走近华为云开发者日HDC.Cloud Day,看三位特别的开发者用技术改变世界,用创造力让生活更美好. 本文分享自华为云社区<云享·人物丨造梦.探梦.筑梦,三位开发者在华为云上的寻梦之旅& ...

  4. java写满天繁星,描写满天繁星唯美句子

    1.没有月亮,繁星像是大荷叶上的露珠似的闪烁着. 2.在我们相识的那夜,月朗星疏,夜空,特别的娇俏:因为有你,点点繁星,妩媚妖娆:在我们相识的那天,看那艳阳满天,彩云朵朵,我在想:那应该是你的温情弥漫 ...

  5. php网页报告2500字,教你写作文2500字

    教你写作文 时间:2014-12-02 字数:2500字 1 记叙文开头方式见下. 2 最好有主次之分,有重点地介绍其中一个事例,另一个事例就当作丰富文章内涵的辅助材料.如果事例应用得当,会给文章加分 ...

  6. 人类的征途是星辰大海,玉兔的征途从月球开始

    晴朗的夜晚 仰望夜空 闪烁的繁星 带来无限遐想 宇宙--人类文明伊始, 就已是世代不休探索梦. 从古希腊的星座,到中国古代的星宿, 人类依靠想象, 一遍又一遍的在心中描绘宇宙. 探索宇宙真理是人类的终 ...

  7. 既然选择了远方,便只顾风雨兼程----汪国真的诗

    热爱生命 我不去想是否能够成功 既然选择了远方 便只顾风雨兼程 我不去想能否赢得爱情 既然钟情于玫瑰 就勇敢地吐露真诚 我不去想身后会不会袭来寒风冷雨 既然目标是地平线 留给世界的只能是背影 我不去想 ...

  8. 【转】追问《我的团长我的团》

    本文系转载,原文链接:http://ent.sina.com.cn/v/m/2009-04-02/ba2452210.shtml  版权归<三联生活周刊>及作者所有. 追问<我的团长 ...

  9. 用计算机撩对象,2020适合撩对象的甜句子集锦

    当你拥有一个对象不知道怎么去让她开心的时候,可以学几句甜句子逗她开心.今天小编整理了2020适合撩对象的甜句子集锦,一起来看看吧! 2020适合撩对象的甜句子集锦1 1. 只要是喜剧收尾,过程你让我怎 ...

最新文章

  1. 一文搞懂select语句在MySQL中的执行流程!
  2. .NET Core微服务 权限系统+工作流(一)权限系统
  3. 限制 计算机中 某用户上网 win7,利用win7限制上网时间的方法
  4. 如何在32位程序中突破地址空间限制使用超过4G的内存
  5. 《深入理解 Spring Cloud 与微服务构建》第四章 Dubbo
  6. 用于CRUD和更多的模型驱动的RESTful API
  7. 未能找到文件“\bin\roslyn\csc.exe”
  8. 在linux下挂载ios镜像文件,linux下挂载iso镜像文件
  9. 恒温控制系统单片机仿真c语言,基于51单片机的恒温控制系统
  10. python异常捕获_Python 异常的捕获、异常的传递与主动抛出异常操作示例
  11. SQL:postgresql求多个点组成的多边形的geom数据
  12. Linux禁用文件可执行权限
  13. 鲍威尔法源程序码matlab,十一、Powell算法(鲍威尔算法)原理以及实现
  14. 安卓 手机硬改 工具下载 一键新机 改串 抹机 root隐藏 改串号MEID imei SN信息 工具教程分享
  15. iPhone 快捷指令 文本朗读
  16. SQL零基础入门学习(七)
  17. 有道词典_每日一句_2019/09
  18. vue自定义指令directives同时传递多个参数
  19. windows系统下,如何使用win+R快速打开安装的应用
  20. 社保html源码,社保查询.html

热门文章

  1. 4.2 使用STM32控制MC20发送短信
  2. c语言 链表倒序,C语言链表逆序方法技巧
  3. 数据分析与可视化软件,社交软件用户画像分析
  4. GPT-4之高考评测
  5. FILETIME和LARGE_INTEGER
  6. kaggle数据集汇总_超全的3D视觉数据集汇总
  7. 从市场需求目标看数据分析演进方向
  8. java 双路cpu_当猫头鹰遇上supermicro, 双路E5折腾记
  9. 还敢开车玩手机?AI“警察”来抓你!
  10. 100个G以上的超大文件的下载方法