bzoj1295 [SCOI2009]最长距离(spfa)
来源:互联网 发布:盐城龙卷风 知乎 编辑:程序博客网 时间:2024/05/18 09:41
这题自己做是真没想到做法。要求移走K个障碍物之后格子之间的最大距离。我们考虑枚举每一个格子(
#include <bits/stdc++.h>using namespace std;#define pa pair<int,int>#define ll long long#define N 32#define inf 0x3f3f3f3finline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f;}int n,m,K,a[N][N],dx[]={0,0,1,-1},dy[]={1,-1,0,0},d[N][N],ans=0;char s[N];bool f[N][N];void getans(int sx,int sy){ for(int i=sx;i<=n;++i) for(int j=1;j<=m;++j) if(d[i][j]<=K&&(i-sx)*(i-sx)+(j-sy)*(j-sy)>ans) ans=(i-sx)*(i-sx)+(j-sy)*(j-sy);}void spfa(int sx,int sy){ queue<pa>q;memset(d,0x3f,sizeof(d));memset(f,0,sizeof(f)); q.push(make_pair(sx,sy));d[sx][sy]=a[sx][sy];f[sx][sy]=1; while(!q.empty()){ int x=q.front().first,y=q.front().second;q.pop();f[x][y]=0; for(int i=0;i<4;++i){ int xx=x+dx[i],yy=y+dy[i]; if(xx<1||xx>n||yy<1||yy>m) continue; if(d[x][y]+a[xx][yy]<d[xx][yy]){ d[xx][yy]=d[x][y]+a[xx][yy]; if(!f[xx][yy]) f[xx][yy]=1,q.push(make_pair(xx,yy)); } } } getans(sx,sy);}int main(){// freopen("a.in","r",stdin); n=read();m=read();K=read(); for(int i=1;i<=n;++i){ scanf("%s",s+1);for(int j=1;j<=m;++j) a[i][j]=s[j]-'0'; } for(int i=1;i<=n;++i) for(int j=1;j<=m;++j) spfa(i,j); printf("%.6lf",sqrt(ans)); return 0;}
阅读全文
0 0
- [BZOJ1295][SCOI2009]最长距离(spfa)
- bzoj1295 [SCOI2009]最长距离(spfa)
- BZOJ1295: [SCOI2009]最长距离
- bzoj1295: [SCOI2009]最长距离
- [bzoj1295]: [SCOI2009]最长距离
- bzoj1295: [SCOI2009]最长距离
- BZOJ1295 [SCOI2009]最长距离 智商
- 【bzoj1295】[SCOI2009]最长距离 最短路
- bzoj 1295: [SCOI2009]最长距离 (spfa)
- 【bzoj 1295】[SCOI2009]最长距离(spfa)
- bzoj 1295: [SCOI2009]最长距离(SPFA)
- 【bzoj1925】【SCOI2009】【最长距离】【spfa】
- BZOJ 1295 SCOI2009 最长距离 SPFA+暴力
- BZOJ 1295: [SCOI2009]最长距离 枚举+SPFA水题
- 【SCOI2009】最长距离
- 1295: [SCOI2009]最长距离
- 1295: [SCOI2009]最长距离
- 1295: [SCOI2009]最长距离
- 对Java中递归的再思考
- git checkout v4.12
- JAVA用UDP实现通信
- CentOS 6.7 Linux系统下 安装redis3.0.7
- 领域模型驱动设计(Domain Driven Design)入门概述
- bzoj1295 [SCOI2009]最长距离(spfa)
- jdk update 和 jdk SE Developer Kit的区别
- java:常见加密解密算法的实现:MD5/SHA/HMAC/DES/PBE/AES/RSA/D-H
- MySQL中explain命令的type指标讲解
- 实现歌词滚动
- angularjs DIV滚动条置底
- Android探索之旅(第二十八篇)BaseActivity,BaseFragment封装必要点
- 查资料:Windows核心编程(第5版中文版) 编译不通过的处理
- 【笔试题】深拷贝与浅拷贝(二)