| 比赛 |
csp2025模拟练习1 |
评测结果 |
AAAAAAWWWAAAAAAAAAAAAAAAAAAAAWAAAAAAAAWWWWWWWWWWWA |
| 题目名称 |
彩色道路 |
最终得分 |
70 |
| 用户昵称 |
李奇文 |
运行时间 |
4.838 s |
| 代码语言 |
C++ |
内存使用 |
16.25 MiB |
| 提交时间 |
2025-10-28 11:26:40 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
int n,m,bl[N],c[N],vis[N];
vector<pair<int,int>>g[N];
void adde(int x,int y,int id){
g[x].push_back({y,id});
g[y].push_back({x,id});
}
void dfs(int u,int k){
vis[u]=1;
for(int i=0;i<g[u].size();i++){
int v=g[u][i].first,p=g[u][i].second;
if(vis[v]) continue;
c[p]=k&1;
dfs(v,k+1);
}
}
int main(){
freopen("paintoads.in","r",stdin);
freopen("paintoads.out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n>>m;
for(int i=1;i<=m;i++){
int x,y;
cin>>x>>y;
adde(x,y,i);
c[i]=-1;
}
for(int i=1;i<=n;i++){
if(!vis[i]){
dfs(i,0);
}
}
for(int i=1;i<=m;i++){
if(c[i]==-1) cout<<"G";
if(c[i]==0) cout<<"R";
if(c[i]==1) cout<<"B";
}
return 0;
}