| 比赛 |
csp2025模拟练习1 |
评测结果 |
AWWWWAWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWAWWWWWWWWWWWWW |
| 题目名称 |
彩色道路 |
最终得分 |
6 |
| 用户昵称 |
梦那边的美好ME |
运行时间 |
5.371 s |
| 代码语言 |
C++ |
内存使用 |
22.45 MiB |
| 提交时间 |
2025-10-28 11:07:11 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int mAXn=200005;
ll n,m;
vector<pair<ll,ll>> s[210000];
ll u[210000],v[210000];
char color[210000];
ll vis[210000],fa[210000],dep[210000];
int main(){
freopen("paintoads.in","r",stdin);
freopen("paintoads.out","w",stdout);
ios::sync_with_stdio(0);cin.tie(0);
cin>>n>>m;
for (int i=0;i<m;i++){
cin>>u[i]>>v[i];
s[u[i]].push_back(make_pair(v[i],i));
s[v[i]].push_back(make_pair(u[i],i));
color[i]='G';
}
for (int i=1;i<=n;i++){
if (!vis[i]){
queue<ll> q;
q.push(i);
vis[i]=1;
dep[i]=0;
fa[i]=-1;
while (!q.empty()){
ll u=q.front();q.pop();
for (auto &e:s[u]){
ll v=e.first;
ll id=e.second;
if (v==fa[u]) continue;
if (!vis[v]){
vis[v]=1;
fa[v]=u;
dep[v]=dep[u]+1;
if (dep[v]%2==0) color[id]='R';
else color[id]='B';
q.push(v);
}else{
if ((dep[u]%2)==(dep[v]%2)){
if (dep[u]%2==0) color[id]='R';
else color[id]='B';
}
}
}
}
}
}
for (int i=0;i<m;i++) cout<<color[i];
cout<<'\n';
return 0;
}