题目描述: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. Entity Framework学习三:查询、插入、更新和删除操作
  2. JAVA 串口编程 (一)
  3. 【ROS-rviz】发布一个图像结果 topic
  4. Nhibernate+MVC开发日志
  5. linuxC编程实战 my_server.c例子问题总结
  6. 使用第三方框架解耦的一种思路—简单工厂模式的运用
  7. GreenDroid 开源UI组件
  8. java用dda算法绘制直线_使用DDA算法画出给定两点的直线
  9. python热身教程_[转载]技术教程-MayaPython教程二之Python
  10. csv文件超过104万数据怎么办
  11. 基因重组-冲刺日志(第四天)
  12. 【Kind2(基于SMT的自动模型检查器)学习笔记】contract的用法
  13. 小米手机v3.exo 合并_eXo发布Web Content Management 2.0作为开源
  14. 基于python的dlib库的人脸识别
  15. 分享:Babel7的配置
  16. 森林救火与计算机相关,无人机森林防火解决方案包含了哪些技术?
  17. 国外搜索引擎+视频网站
  18. Producing Snow
  19. 每天一个小实例——使用pdfplumber提取pdf表格及文本,并保存到excel
  20. contiki学习笔记03

热门文章

  1. 变压器绝缘电阻测试试验
  2. selenium【自动下载谷歌驱动】自动获取谷歌版本,并自动下载对应版本的chromedriver.exe
  3. 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(十四)(卷积神经网络))
  4. istio功能介绍(二.Istio使用说明)
  5. 学生护眼灯色温多少合适?精选色温舒适的学生护眼灯
  6. face_recognition、opencv中haar人脸特征:视频/图片 进行 人脸检测/人脸识别
  7. 【VMware vSAN 7.0】6.1 延伸集群简介—我们有软硬件解决方案
  8. VMware 任道远:中国的开源生态还处在萌芽发展的青春期,需要多元力量和全球化协作 I OpenTEKr 大话开源 Vol.9
  9. mkfifo函数 及 解决Linux下 “mkfifo: no such file or directory”
  10. C语言中strlen()的用法