• bzoj2464: 中山市选[2009]小明的游戏(最短路)


    2464: 中山市选[2009]小明的游戏

    题目:传送门 


    题解:

       最短路的裸题...

        


    代码:

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<cstdlib>
     4 #include<algorithm>
     5 #include<cmath>
     6 using namespace std;
     7 int dx[5]={0,1,-1,0,0};
     8 int dy[5]={0,0,0,-1,1};
     9 struct node
    10 {
    11     int x,y;
    12 }list[510000];
    13 int d[550][550],sx,sy,ex,ey;
    14 bool v[550][550];
    15 char s[550][550];
    16 int main()
    17 {
    18     int n,m;
    19     while(scanf("%d%d",&n,&m)!=EOF)
    20     {
    21         if(n==0 && m==0)break;
    22         for(int i=1;i<=n;i++)scanf("%s",s[i]+1);
    23         scanf("%d%d%d%d",&sx,&sy,&ex,&ey);sx++;sy++;ex++;ey++;
    24         list[1].x=sx;list[1].y=sy;
    25         memset(d,63,sizeof(d));d[sx][sy]=0;
    26         memset(v,false,sizeof(v));v[sx][sy]=true;
    27         int head=1,tail=2;
    28         while(head!=tail)
    29         {
    30             int x=list[head].x,y=list[head].y;
    31             for(int i=1;i<=4;i++)
    32             {
    33                 int tx=x+dx[i],ty=y+dy[i];
    34                 if(tx<1 || ty<1 || tx>n || ty>m) continue;
    35                 int c;if(s[tx][ty]==s[x][y])c=0;else c=1;
    36                 if(d[tx][ty]>d[x][y]+c)
    37                 {
    38                     d[tx][ty]=d[x][y]+c;
    39                     if(v[tx][ty]==false)
    40                     {
    41                         v[tx][ty]=true;
    42                         list[tail].x=tx,list[tail].y=ty;
    43                         tail++;if(tail==n*m+1)tail=1;
    44                     }
    45                 }
    46             }
    47             head++;if(head==n*m+1) head=1;
    48             v[x][y]=false;
    49         }
    50         printf("%d
    ",d[ex][ey]);
    51     }
    52     return 0;
    53 }
  • 相关阅读:
    Numpy用于数组的文件输入输出
    numpy利用数组进行数据处理
    numpy的通用函数:快速的元素级数组函数
    NumPy基础知识:数组和矢量计算
    数据处理任务介绍
    Django的ModelForm
    Http1.0和Http1.1的主要区别
    静态库中如何包含资源文件
    zt 正则
    oc调用swift的打包.a / framework 不成功?!
  • 原文地址:https://www.cnblogs.com/CHerish_OI/p/8654013.html
Copyright © 2020-2023  润新知