1 条题解

  • 0
    @ 2026-10-25 18:02:04

    思路

    逐边加入点阵,只在两个端点已连通时形成首个环,输出最早步或draw,边无重复。

    参考程序(C++11)

    #include <bits/stdc++.h>
    using namespace std;
    vector<int>p;int f(int x){return p[x]==x?x:p[x]=f(p[x]);}int main(){int n,m;cin>>n>>m;p.resize(n*n);iota(p.begin(),p.end(),0);for(int i=1;i<=m;i++){int x,y;char c;cin>>x>>y>>c;int a=(x-1)*n+y-1,b=a+(c=='D'?n:1);a=f(a);b=f(b);if(a==b){cout<<i<<'\n';return 0;}p[a]=b;}cout<<"draw\n";}
    
    • 1

    信息

    ID
    1341
    时间
    1000ms
    内存
    64MiB
    难度
    普及
    标签
    递交数
    1
    已通过
    1
    上传者