Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
38451 氩_wjy 【S】T3 C++ 输出超限 0 6773 MS 137120 KB 1378 2025-10-08 15:06:21

Tests(0/8):


#include<bits/stdc++.h> #define int long long #define vi vector<int> using namespace std; const int N=5e5+7,w=67; int n,m,a[N]; vi vc[N]; vi E[N],IE[N]; int Ind[N],Ans[N]; inline vi Merge(vi u,vi v){ vi ret;ret.clear(); for(auto x:u)ret.push_back(x); for(auto x:v)ret.push_back(x); sort(ret.begin(),ret.end()); ret.erase(unique(ret.begin(),ret.end()),ret.end()); ret.resize(min((int)ret.size(),w));return ret; } signed main(){ #ifndef ONLINE_JUDGE freopen("stone.in","r",stdin); freopen("stone.out","w",stdout); #endif cin>>n>>m; for(int i=1;i<=n;i++)cin>>a[i]; for(int i=1;i<=m;i++){ int u,v;cin>>u>>v; E[u].push_back(v),IE[v].push_back(u);Ind[u]++; }for(int i=1;i<=n;i++)vc[i].push_back(i); queue<int> q; for(int i=1;i<=n;i++)if(!Ind[i])q.push(i); while(!q.empty()){ int u=q.front();q.pop(); cout<<u<<endl; for(auto v:IE[u]){ vc[v]=Merge(vc[v],vc[u]);--Ind[v]; if(!Ind[v])q.push(v); } }for(int i=1;i<=n;i++){ cout<<i<<endl; for(auto x:vc[i])cout<<x<<" ";cout<<endl; Ans[i]=-1; for(int x=0;x<vc[i].size();x++)for(int y=x+1;y<vc[i].size();y++)Ans[i]=max(Ans[i],a[vc[i][x]]&a[vc[i][y]]); }for(int i=1;i<=n;i++)cout<<Ans[i]<<" ";cout<<endl; return 0; }


测评信息: