当前位置: 首页>編程日記>正文

【noi.ac #1779】D

【noi.ac #1779】D

题目

在一个数轴上一共有 NN 段闭区间,它们可能有交。

现在你需要对它们黑白染色。对于每个位置 xx ,假设覆盖它的黑色区间个数为 bxbx,覆盖它的白色区间个数为 wxwx,要求满足 |bx−wx|≤1|bx−wx|≤1。区间 [l,r][l,r] 覆盖位置 xx 当且仅当 l≤x≤rl≤x≤r。

给出任意一种方案即可。

输入格式
第一行两个整数 NN。

接下来 NN 行,每行两个整数 li,rili,ri,表示一个 [li,ri][li,ri] 的区间。

输出格式
一共 NN 个 0/10/1 数,其中第 ii 个数为 11 表示第 ii 个区间染黑,否则为染黑。

样例一
Input
2
1 3
3 5
Output
1 0
样例二
Input
5
1 5
3 9
4 8
5 9
6 8
Output
1 0 0 1 1
数据范围
30%的数据满足:N≤20N≤20
60%的数据满足:N≤500N≤500
对于100%的数据满足:N≤105,0≤li≤ri≤109N≤105,0≤li≤ri≤109,数据保证至少有一组解。

思路

我们把黑的看成 +1+1+1,白的看成 −1-11。对于区间 [l,r][l,r][l,r],做个差分,便可以看做是一条从 lllr+1r+1r+1 的边。

我们想要的是每个位置是 0,±10, \pm 10,±1,这个对应到差分上值有 0,±1,±20, \pm 1, \pm 20,±1,±2,不太好处理。但是如果我们想要的是每个位置都是 000,那么差分后每个位置都是 000,也就是说如果建出来的图存在欧拉回路,那么我们按照欧拉回路上的边的方向就可以得到一组解。

对于原题,可以发现为 ±1\pm 1±1 的一定是被覆盖奇数次的位置,那么新增一些区间来覆盖它们,使得每个位置都为偶数次。这个时候建出来的图也一定是存在欧拉回路的,于是我们就得到了一组满足每个位置都是 0,±10, \pm 10,±1 的解。

代码

#include<bits/stdc++.h>
#define register
using namespace std;
const int N=2e5+77;
int fa[N],vl[N];
int gf(int a)
{if(a==fa[a])return a;int x=gf(fa[a]);vl[a]^=vl[fa[a]];fa[a]=x;return x;
}
pair<int,int>pp[N];
int main()
{int n,l,r;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d%d",&l,&r);pp[i*2-1]=std::make_pair(l,i);pp[i*2]=std::make_pair(r,i+n);fa[i]=fa[i+n]=i,vl[i+n]=1;}sort(pp+1,pp+2*n+1);int nw=0;for(int i=1;i<=2*n;i++){int no=pp[i].second;if(!nw)nw=no;else{if(gf(nw)!=gf(no)){vl[fa[no]]=vl[no]^vl[nw]^1;fa[fa[no]]=fa[nw];}nw=0;}}for(int i=1;i<=n;i++){gf(i);printf("%d ",vl[i]);}
}


https://www.fengoutiyan.com/post/14804.html

相关文章:

  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機