• AtCoder Beginner Contest 132 E


    bfs

    位置+状态

    just need to calculate min value(only it is useful), so O(1*x)

    挺有趣的一道题。。。

     1 #include <cstdio>
     2 #include <cstdlib>
     3 #include <cmath>
     4 #include <cstring>
     5 #include <string>
     6 #include <algorithm>
     7 #include <iostream>
     8 using namespace std;
     9 #define ll long long
    10 
    11 const int maxn=1e6+10;
    12 
    13 struct node
    14 {
    15     int d;
    16     node *to;
    17 }*e[maxn];
    18 
    19 int qx[maxn*3],qy[maxn*3],qz[maxn*3];
    20 
    21 int f[maxn][3];
    22 
    23 int main()
    24 {
    25     node *p;
    26     int n,m,x,y,z,xx,yy,zz,head,tail,s,t;
    27     scanf("%d%d",&n,&m);
    28     while (m--)
    29     {
    30         scanf("%d%d",&x,&y);
    31         p=new node();
    32         p->d=y;
    33         p->to=e[x];
    34         e[x]=p;
    35     }
    36 
    37     scanf("%d%d",&s,&t);
    38     qx[1]=s,qy[1]=0,qz[1]=3;
    39     head=0,tail=1;
    40     while (head<tail)
    41     {
    42         head++;
    43         x=qx[head];
    44         y=qy[head];
    45         z=qz[head];
    46 
    47         p=e[x];
    48         while (p)
    49         {
    50             xx=p->d;
    51             yy=(y+1)%3;
    52             zz=z+1;
    53             if (!f[xx][yy])
    54             {
    55                 if (xx==t && yy==0)
    56                 {
    57                     printf("%d",(zz-3)/3);
    58                     return 0;
    59                 }
    60                 tail++;
    61                 qx[tail]=xx;
    62                 qy[tail]=yy;
    63                 qz[tail]=zz;
    64                 f[xx][yy]=zz;
    65             }
    66             p=p->to;
    67         }
    68     }
    69     printf("-1");
    70     return 0;
    71 }
  • 相关阅读:
    2018-4-17-软件设计-白话依赖注入
    2018-2-13-wpf-PreviewTextInput-在鼠标输入获得-_u0003
    2018-5-23-为何-987654321_123456789-的值是-8.0000000729
    寄存器位写操作
    Linux多IP配置
    Kconfig和Makefile
    linux设置网卡速率
    Winmanager,NERDTree和MiniBufExplorer
    SuperTab
    ping
  • 原文地址:https://www.cnblogs.com/cmyg/p/11108069.html
Copyright © 2020-2023  润新知