个人网站什么语言做,正规的网站制作哪个好,门户网站建设公司渠道,搜狗网站传送门 文章目录题意#xff1a;思路#xff1a;题意#xff1a; 思路#xff1a;
考虑对于线段#xff0c;如何建模。 我们考虑先将线段转换成左闭右开的形式#xff0c;将左右点连起来。 再考虑每个点#xff0c;将所有离散化后的点拿出来#xff0c;每个点都有一个…传送门
文章目录题意思路题意 思路
考虑对于线段如何建模。 我们考虑先将线段转换成左闭右开的形式将左右点连起来。 再考虑每个点将所有离散化后的点拿出来每个点都有一个度现在问题就是给每个边定向让入度和出度之差≤1\le1≤1即可。 这就是欧拉回路的经典问题了将奇度点之间连边即可。
// Problem: E. Points and Segments
// Contest: Codeforces - Codeforces Round #245 (Div. 1)
// URL: https://codeforces.com/contest/429/problem/E
// Memory Limit: 256 MB
// Time Limit: 1000 ms
//
// Powered by CP Editor (https://cpeditor.org)//#pragma GCC optimize(Ofast,no-stack-protector,unroll-loops,fast-math)
//#pragma GCC target(sse,sse2,sse3,ssse3,sse4.1,sse4.2,avx,avx2,popcnt,tunenative)
//#pragma GCC optimize(2)
#includecstdio
#includeiostream
#includestring
#includecstring
#includemap
#includecmath
#includecctype
#includevector
#includeset
#includequeue
#includealgorithm
#includesstream
#includectime
#includecstdlib
#includerandom
#includecassert
#define X first
#define Y second
#define L (u1)
#define R (u1|1)
#define pb push_back
#define mk make_pair
#define Mid ((tr[u].ltr[u].r)1)
#define Len(u) (tr[u].r-tr[u].l1)
#define random(a,b) ((a)rand()%((b)-(a)1))
#define db puts(---)
using namespace std;//void rd_cre() { freopen(d://dp//data.txt,w,stdout); srand(time(NULL)); }
//void rd_ac() { freopen(d://dp//data.txt,r,stdin); freopen(d://dp//AC.txt,w,stdout); }
//void rd_wa() { freopen(d://dp//data.txt,r,stdin); freopen(d://dp//WA.txt,w,stdout); }typedef long long LL;
typedef unsigned long long ULL;
typedef pairint,int PII;const int N2000010,MN,mod1e97,INF0x3f3f3f3f;
const double eps1e-6;int n,m;
vectorintv;
PII p[N];
int type;
int h[N], e[M], ne[M], idx;
bool used[M];
int ans[M], cnt;
int d[N];void add(int a, int b)
{e[idx] b, ne[idx] h[a], h[a] idx ;
}void dfs(int u)
{for (int i h[u]; ~i;){if (used[i]){i ne[i];continue;}used[i] true;if (type 1) used[i ^ 1] true;int t;if (type 1){t i / 2 1;if (i 1) t -t;}else t i 1;int j e[i];i ne[i];if(t0) ans[t]1;else ans[-t]0;dfs(j);// if(t0) ans[t]1;// else ans[-t]0;// couttendl;}
}int find(int x) {return lower_bound(v.begin(),v.end(),x)-v.begin()1;
}int main()
{
// ios::sync_with_stdio(false);
// cin.tie(0);memset(h,-1,sizeof(h));type1;scanf(%d,n);for(int i1;in;i) {int l,r; scanf(%d%d,l,r);p[i]{l,r1}; v.pb(l); v.pb(r1);}sort(v.begin(),v.end()); v.erase(unique(v.begin(),v.end()),v.end());for(int i1;in;i) {p[i].Xfind(p[i].X),p[i].Yfind(p[i].Y);add(p[i].X,p[i].Y); add(p[i].Y,p[i].X);d[p[i].X]; d[p[i].Y];// coutp[i].X p[i].Yendl;}vectorintnow;for(int i1;iv.size();i) if(d[i]%21) now.pb(i);for(int i0;inow.size();i2) add(now[i],now[i1]),add(now[i1],now[i]);for(int i1;iv.size();i) if(h[i]!-1) {dfs(i);}for(int i1;in;i) printf(%d ,ans[i]);return 0;
}
/**/