Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
41248 baka24 【BJ】T3 C++ 解答错误 0 1000 MS 195244 KB 1873 2026-04-11 18:52:09

Tests(0/7):


#include<bits/stdc++.h> using namespace std; #define int long long #define pii pair<int,int> #define fr first #define sc second #define mk make_pair #define pb push_back const int MAXN=1000010,N=1e6; int read(){int x=0,f=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9')x=(x<<1)+(x<<3)+(c^48),c=getchar();return x*f;} int n,m,as[MAXN]; vector<pii>G[MAXN],P[MAXN]; int it[MAXN]; queue<int>Q;int inq[MAXN]; void chk(int i){ if(P[i].size()>2&&!inq[i])Q.push(i),inq[i]=1; } void bt(int i){ if(it[i]==G[i].size())return; if(!as[G[i][it[i]].sc])as[G[i][it[i]].sc]=1,P[G[i][it[i]].fr].pb(mk(i,G[i][it[i]].sc)),chk(G[i][it[i]].fr); if(!as[G[i].back().sc])as[G[i].back().sc]=1,P[G[i].back().fr].pb(mk(i,G[i].back().sc)),chk(G[i].back().fr); } void dfs(int x){ pii mx={0,0},mn={N,N}; for(auto o:P[x])mx=max(mx,o),mn=min(mn,o); for(auto p:P[x])if(p!=mx&&p!=mn){ if(it[p.fr]==G[p.fr].size()-1)as[p.sc]=0,it[p.fr]++; else{ if(p.sc==G[p.fr].back().sc)as[p.sc]=0,G[p.fr].pop_back(),bt(p.fr); else as[p.sc]=0,it[p.fr]++,bt(p.fr); } } P[x].clear(); P[x].pb(mn),P[x].pb(mx); } vector<pii>TMP[MAXN]; void slv(){ n=read(); for(int i=1;i<=n;i++){ int x=read(),y=read(); TMP[y].pb(mk(x,i)); // G[read()].pb(mk(read(),i)); } for(int i=1;i<=N;i++)for(auto o:TMP[i])G[o.fr].pb(mk(i,o.sc)); // init(); for(int i=1;i<=N;i++)bt(i); while(!Q.empty()){ int x=Q.front();inq[x]=0;Q.pop(); dfs(x); } for(int i=1;i<=n;i++)printf("%d",as[i]); // chk(); } signed main(){ // freopen("1.in","r",stdin);freopen("1.out","w",stdout); slv();cout<<endl; cout<<time(0)<<endl; //cerr<<clock()*1.0/CLOCKS_PER_SEC<<"s\n"; return 0; }


测评信息: