zoukankan      html  css  js  c++  java
  • 格子游戏

    格子游戏
    【问题描述】
      Alice和Bob玩了一个古老的游戏:首先画一个n * n的点阵(下图n = 3)   接着,他们两个轮流在相邻的点之间画上红边和蓝边:
     
     
     
        直到围成一个封闭的圈(面积不必为1)为止,“封圈”的那个人就是赢家。因为棋盘实在是太大了(n <= 200),他们的游戏实在是太长了!他们甚至在游戏中都不知道谁赢得了游戏。于是请你写一个程序,帮助他们计算他们是否结束了游戏?
    【输入格式】
      输入数据第一行为两个整数n和m。m表示一共画了m条线。以后m行,每行首先有两个数字(x, y),代表了画线的起点坐标,接着用空格隔开一个字符,假如字符是"D ",则是向下连一条边,如果是"R "就是向右连一条边。输入数据不会有重复的边且保证正确。
    【输出格式】
      输出一行:在第几步的时候结束。假如m步之后也没有结束,则输出一行“draw”。
    【输入样例】
      3 5
      1 1 D
      1 1 R
      1 2 D
      2 1 R
      2 2 D
    【输出样例】
      4
     1 #include<cstdio>
     2 #include<iostream>
     3 using namespace std;
     4 int n,m;
     5 char c;
     6 int a,b;
     7 struct node
     8 {
     9     int x,y;
    10 }far[500][500],k1,k2;
    11 node find(node k)
    12 {
    13     if((far[k.x][k.y].x==k.x)&&(far[k.x][k.y].y==k.y))return  k;
    14     far[k.x][k.y]=find(far[k.x][k.y]);
    15     return far[k.x][k.y];
    16 }
    17 int main()
    18 {
    19     freopen("game.in","r",stdin);
    20     freopen("game.out","w",stdout);
    21     scanf("%d%d",&n,&m);
    22     for(int i=1;i<=n;++i)
    23         for(int j=1;j<=n;++j)
    24         {
    25             far[i][j].x=i;far[i][j].y=j;
    26         }
    27     for(int i=1;i<=m;++i)
    28     {
    29         cin>>a>>b>>c;
    30         if(c=='D')
    31         {
    32             k1=find(far[a][b]);
    33             k2=find(far[a+1][b]);
    34         }
    35         if(c=='R')
    36         {
    37             k1=find(far[a][b]);
    38             k2=find(far[a][b+1]);
    39         }
    40         if(k1.x==k2.x&&k1.y==k2.y)
    41         {
    42             printf("%d
    ",i);return 0;
    43         }
    44         else far[k1.x][k1.y]=k2;
    45     }
    46     printf("draw");
    47     return 0;
    48 }
  • 相关阅读:
    扩展kmp
    计算几何板子
    组合数板子
    SecureML: A System for Scalable Privacy-Preserving Machine Learning 论文笔记
    mac任务管理器快捷键
    后缀数组
    poj 1144 Network【图的割点】模板
    CSU 1162【Balls in the Boxes】
    CSU 1111【三家人】数学题
    P1330 封锁阳光大学【二分染色】
  • 原文地址:https://www.cnblogs.com/mjtcn/p/6700487.html
Copyright © 2011-2022 走看看