zoukankan      html  css  js  c++  java
  • bzoj 1295: [SCOI2009]最长距离

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #include<cstring>
     5 using namespace std;
     6 int n,m,T;
     7 double ans=0;
     8 bool mp[31][31],inq[31][31],vis[31][31];
     9 int dis[31][31];
    10 int dx[4]={1,-1,0,0};
    11 int dy[4]={0,0,-1,1};
    12 struct data{
    13 int x,y;
    14 }q[100000];
    15 void getans(int x,int y)
    16 {
    17     for(int i=x;i<=n;i++)
    18        for(int j=1;j<=m;j++)
    19           if(dis[i][j]<=T&&(y-j)*(y-j)+(x-i)*(x-i)>ans)
    20              ans=(y-j)*(y-j)+(x-i)*(x-i);
    21 }
    22 void search(int xx,int yy)
    23 {
    24     int nowx,nowy,i,t=1,w=1,nx,ny;
    25     q[1].x=xx;q[1].y=yy;
    26     memset(inq,0,sizeof(inq));
    27     memset(dis,127,sizeof(dis));
    28     inq[xx][yy]=1;dis[xx][yy]=mp[xx][yy];
    29     while(t<=w)
    30     {
    31         nowx=q[t].x;nowy=q[t].y;
    32         t++;
    33         for(i=0;i<4;i++)
    34         {
    35             nx=nowx+dx[i];ny=nowy+dy[i];
    36             if(nx>n||nx<xx||ny>m||ny<1)continue;
    37             if(dis[nowx][nowy]+mp[nx][ny]<dis[nx][ny])
    38             {
    39                  dis[nx][ny]=dis[nowx][nowy]+mp[nx][ny];
    40                  if(!inq[nx][ny])   
    41                  {
    42                     q[++w].x=nx;q[w].y=ny;inq[nx][ny]=1;
    43                  }      
    44             }
    45         }
    46         inq[nowx][nowy]=0;
    47     }
    48     getans(xx,yy);
    49 }
    50 int main()
    51 {
    52     scanf("%d%d%d",&n,&m,&T);
    53     char str[40];
    54     for(int i=1;i<=n;i++)
    55     {
    56         scanf("%s",str);
    57         for(int j=0;j<m;j++)
    58         mp[i][j+1]=str[j]-'0';
    59     }
    60     for(int i=1;i<=n;i++)
    61        for(int j=1;j<=m;j++)
    62           {search(i,j);}
    63     printf("%.6lf",sqrt(ans));
    64     return 0;
    65 }

    以每一个点为中心进行宽搜,存到每个点移去的最小障碍数,然后枚举更新最优值。

  • 相关阅读:
    vue去除#号tomcat配置
    vscode配置
    git忽略想要提交的文件
    vue-cli配置移动端自适应
    远程调试工具 -- weinre
    将博客搬至CSDN
    错误:this dependency was not found:'element-ui/lib/theme-chalk/index.css'。。。。。。。
    win上java1.7和1.8版本修改环境变量无效.md
    mysql 事务
    mysql 函数
  • 原文地址:https://www.cnblogs.com/xydddd/p/5248874.html
Copyright © 2011-2022 走看看