比赛 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;
}