比赛 csp2025模拟练习1 评测结果 AWAAAAWWWWWWAAAAAAAAWWAWAAAAAWAAAWWWWWWWWWWWWWWWWW
题目名称 彩色道路 最终得分 44
用户昵称 徐诗畅 运行时间 3.156 s
代码语言 C++ 内存使用 10.68 MiB
提交时间 2025-10-28 10:32:16
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
int n,m,head[N],cnt;
struct edge{int v,id,nex;}e[N<<1];
void addedge(int u,int v,int id){
	e[++cnt].v=v;
	e[cnt].id=id;
	e[cnt].nex=head[u];
	head[u]=cnt;
}
int ans[N],vis[N];
void dfs(int u,int now){
	if(now==1) now=2; else now=1;
	for(int i = head[u];i;i=e[i].nex){
		int v=e[i].v; if(vis[v]) continue;
		ans[e[i].id]=now; vis[v]=1; 
		dfs(v,now);
	}
}
int main(){
	freopen("paintoads.in","r",stdin);
	freopen("paintoads.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(int i = 1;i<=m;i++){
		int u,v; scanf("%d%d",&u,&v);
		addedge(u,v,i); addedge(v,u,i);
	}
	dfs(1,1);
	for(int  i =1;i<=m;i++)
	if(ans[i]==1) cout<<"R";
	else if(ans[i]==2) cout<<"B";
	else cout<<"G";
	return 0;
}