首AC!
原题链接:19000.格子游戏2024-04-06 15:35:11
发布于:广东
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=40005;
int n,m,p[N];
int find(int x){
if(x==p[x]) return x;
else return p[x]=find(p[x]);
}
void merge(int x,int y){
p[find(x)]=find(y);
}
int main(){
cin>>n>>m;
for(int i=1;i<=n*n;++i) p[i]=i;
char c;
for(int i=1,a,b;i<=m;++i){
cin>>a>>b>>c;
int x=(a-1)*n+b,y;
if(c=='D') y=a*n+b;
else y=(a-1)*n+b+1;
if(find(x)==find(y)){
cout<<i;
return 0;
}
merge(x,y);
}
cout<<"draw";
return 0;
}
这里空空如也
有帮助,赞一个