先离散,然后将黑的看成1,白的看成-1,对整个序列差分,所有区间建为$(l,r+1)$的无向边,并标上-1和1,每一个点的前缀和即为该点的值
考虑什么情况下能够使得所有点都是0:当且仅当每一个点的度数都为偶数(证明:必要性,由于所有点奇偶性相同,因此比然要有偶数条边;必要性:每一个连通块都存在一个欧拉回路,按照欧拉回路经过方向不同标上-1和1,根据欧拉回路的性质,即所有点都为0)
原题中,允许每一个点为0或$\pm 1$,因此并不保证所有点度数都为偶数,考虑构造:将相邻两个度数为奇数的点连起来,这样构成全都是0,然后删去这些区间,由于这些区间互不相交,所以满足题中要求

 1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 200005
4 struct ji{
5 int nex,to;
6 }edge[N<<1];
7 pair<int,int>a[N];
8 int E,n,x,y,head[N],vis[N],ans[N];
9 void add(int x,int y){
10 edge[E].nex=head[x];
11 edge[E].to=y;
12 head[x]=E++;
13 if (E&1)add(y,x);
14 }
15 void dfs(int k){
16 for(int i=head[k];i!=-1;i=edge[i].nex)
17 if (ans[i/2]<0){
18 ans[i/2]=(i&1);
19 dfs(edge[i].to);
20 }
21 }
22 int main(){
23 scanf("%d",&n);
24 memset(head,-1,sizeof(head));
25 memset(ans,-1,sizeof(ans));
26 for(int i=1;i<=n;i++){
27 scanf("%d%d",&x,&y);
28 a[2*i-1]=make_pair(x*2,2*i-1);
29 a[2*i]=make_pair(y*2+1,2*i);
30 add(2*i-1,2*i);
31 }
32 sort(a+1,a+2*n+1);
33 for(int i=1;i<=n;i++)add(a[2*i-1].second,a[2*i].second);
34 for(int i=1;i<=2*n;i++)dfs(i);
35 for(int i=0;i<n;i++)printf("%d ",ans[i]);
36 }

[noi1779]D的更多相关文章

随机推荐

  1. golang []byte和string的高性能转换

    golang []byte和string的高性能转换 在fasthttp的最佳实践中有这么一句话: Avoid conversion between []byte and string, since ...

  2. 题解 「CTSC2018暴力写挂」

    题目传送门 题目大意 给出两个大小为 \(n\) 的树,求出: \[\max\{\text{depth}(x)+\text{depth}(y)-\text{depth}(\text{LCA}(x,y) ...

  3. 【数据结构与算法Python版学习笔记】图——最短路径问题、最小生成树

    最短路径问题 概念 可以通过"traceroute"命令来跟踪信息传送的路径: traceroute www.lib.pku.edu.cn 可以将互联网路由器体系表示为一个带权边的 ...

  4. Java序列初始化

    1.数组 Java数组可以用元素集合初始化: char[] c=new char[]{'.','.','.','.'}; 而想要用指定数量的相同元素来初始化数组,可以使用Arrays.fill()方法 ...

  5. Scrum Meeting 0423

    零.说明 日期:2021-4-23 任务:简要汇报两日内已完成任务,计划后两日完成任务 一.进度情况 组员 负责 两日内已完成的任务 后两日计划完成的任务 qsy PM&前端 完成引导页UI# ...

  6. RSA加密——前端JSEncrypt

    RSA加密--前端JSEncrypt 介绍 ​ JSEncrypt是一个RSA加密库,在没有SSL加密传输通道支持https协议的情况下,该库可以在http传输重要信息如时,保证数据的安全性.我们小组 ...

  7. OO第三单元

    OO第三单元 JML语言理论基础,应用工具链 JML语言基础 JML简介 定义: JML 是一种形式化的. 面向 JAVA 的行为接口规格语言 作用: 开展规格化设计.这样交给代码实现人员的将不是可能 ...

  8. kafka错误之 Topic xxx not present in metadata after 60000 ms

    Topic xxx not present in metadata after 60000 ms 一.背景 二.场景还原 1.jar包引入 2.jar代码 3.运行结果 三.问题解决 四.参考文档 一 ...

  9. echart3 力引导布局实现节点的提示和折叠

    最近在项目中需要开发一个图表来显示人员的各种属性,类似于一种树形的结构进行显示数据.如果多个人员有同一个属性,那么需要将相同的属性进行连线,即关联起来.即形成一个关系图,由于我自身对echarts稍微 ...

  10. WPF PropertyChanged实现子属性通知

    今天用WPF的View绑定了ViewModel的一个属性类,结果在属性类的子属性修改时,没有通知到UI. 如有要显示一个学生信息,采用WPF MVVM的模式,则前端代码 <StackPanel& ...