zoukankan      html  css  js  c++  java
  • 遭遇战

    遭遇战
    【问题描述】
    小林和小华在一个n*n 的矩形方格里玩游戏,矩形左上角为(0,0),右下角为(n-1,n-
    1)。两人同时进入地图的随机位置,并以相同速度进行走位。为了隐蔽性,两人都不会再走
    自己走过的格子。如果两人向某一方向前进,那么他们会跑到不能跑为止,当不能跑的时候,
    小林会向右转,小华则会向左转,如果不能跑,则不再动。 现在已知两人进入地图的初始
    位置和方向,请算出两人遭遇的位置。
    【输入】
    第一行一个正整数t,表示测试数据的组数。
    接下来的t 组数据,每组数据的第一行包含1 个整数n,。
    第二行包含三个整数,x、y 和d,表示小林的初始位置和一开始跑的方向。其中d=0 表
    示东;d=1 表示南;d=2 表示西;d=3 表示北。
    第三行与第二行格式相同,但描述的是小华。
    【输出】
    输出t 行,若会遭遇,则包含两个整数,表示他们第一次相遇的格子的坐标,否则输出
    “-1”。

    【输入输出样例】
    fight.in
    2
    2
    0 0 0
    0 1 2
    4
    0 1 0
    3 2 0

    fight.out
    -1
    1 3

    考试第一题(惊了)刚了两个多小时。。。纯模拟。。。呵呵:

      1 #include<bits/stdc++.h>
      2 using namespace std;
      3 int k,n;
      4 int x_1,y_1,z_1,x_2,y_2,z_2;
      5 int biao_ji1=1,biao_ji2=1;
      6 int b1[1100][1100],b2[1100][1100];
      7 int main()
      8 {
      9     cin>>k;
     10     while(k)
     11     {
     12         cin>>n;
     13         cin>>x_1>>y_1>>z_1;//读入
     14         cin>>x_2>>y_2>>z_2;
     15         biao_ji1=biao_ji2=1;//默认能走
     16         memset(b1,0,sizeof(b1));
     17         memset(b2,0,sizeof(b2));
     18         while((x_1!=x_2||y_1!=y_2)&&(biao_ji1||biao_ji2))//循环先前走
     19         {
     20             b1[x_1][y_1]=1;//标记
     21             b2[x_2][y_2]=1;
     22             if(biao_ji1)//如果小林能走
     23             {
     24                 if(z_1==3)//根据题意去试
     25                 {
     26                     if(x_1-1>=0&&b1[x_1-1][y_1]==0) x_1--;
     27                     else
     28                     {
     29                         z_1=0;
     30                         if(y_1+1<n&&b1[x_1][y_1+1]==0) y_1++;
     31                         else biao_ji1=0;//表示无法再走
     32                     }
     33                 }
     34                 else if(z_1==0)
     35                 {
     36                     if(y_1+1<n&&b1[x_1][y_1+1]==0) y_1++;
     37                     else
     38                     {
     39                         z_1=1;
     40                         if(x_1+1<n&&b1[x_1+1][y_1]==0) x_1++;
     41                         else biao_ji1=0;
     42                     }
     43                 }
     44                 else if(z_1==1)
     45                 {
     46                     if(x_1+1<n&&b1[x_1+1][y_1]==0) x_1++;
     47                     else
     48                     {
     49                         z_1=2;
     50                         if(y_1-1>=0&&b1[x_1][y_1-1]==0)    y_1--;
     51                         else biao_ji1=0;
     52                     }
     53                 }
     54                 else
     55                 {
     56                     if(y_1-1>=0&&b1[x_1][y_1-1]==0)    y_1--;
     57                     else
     58                     {
     59                         z_1=3;
     60                         if(x_1-1>=0&&b1[x_1-1][y_1]==0)    x_1--;
     61                         else biao_ji1=0;
     62                     }
     63                 }
     64             }
     65             if(biao_ji2)//同上
     66             {
     67                 if(z_2==3)
     68                 {
     69                     if(x_2-1>=0&&b2[x_2-1][y_2]==0)    x_2--;
     70                     else
     71                     {
     72                         z_2=2;
     73                         if(y_2-1>=0&&b2[x_2][y_2-1]==0)    y_2--;
     74                         else biao_ji2=0;
     75                     }
     76                 }
     77                 else if(z_2==0)
     78                 {
     79                     if(y_2+1<n&&b2[x_2][y_2+1]==0) y_2++;
     80                     else
     81                     {
     82                         z_2=3;
     83                         if(x_2-1>=0&&b2[x_2-1][y_2]==0)    x_2--;
     84                         else biao_ji2=0;
     85                     }
     86                 }
     87                 else if(z_2==1)
     88                 {
     89                     if(x_2+1<n&&b2[x_2+1][y_2]==0)    x_2++;
     90                     else
     91                     {
     92                         z_2=0;
     93                         if(y_2+1<n&&b2[x_2][y_2+1]==0) y_2++;
     94                         else biao_ji2=0;
     95                     }
     96                 }
     97                 else
     98                 {
     99                     if(y_2-1>=0&&b2[x_2][y_2-1]==0)    y_2--;
    100                     else
    101                     {
    102                         z_2=1;
    103                         if(x_2+1<n&&b2[x_2+1][y_2]==0) x_2++;
    104                         else biao_ji2=0;
    105                     }
    106                 }
    107             }
    108         }
    109         if(x_1==x_2&&y_1==y_2)    cout<<x_1<<" "<<y_1;
    110         else cout<<-1;
    111         cout<<endl;
    112         k--;
    113     }
    114 }

    呵呵呵呵呵呵呵呵呵呵呵呵呵......................

  • 相关阅读:
    制作ubuntu容器完整步骤
    linux系统python3安装pip
    ssh连接服务器提示拒绝了密码
    ubuntu中vi编辑中按键错误
    虚拟机ubuntu连不上网
    NOIP2020退役记
    【NOIp2020游记】
    loki简单安装配置使用
    .net下com调用支持x86/x64
    nginx 504 Gateway Time-out
  • 原文地址:https://www.cnblogs.com/dai-jia-ye/p/9821520.html
Copyright © 2011-2022 走看看