Description

windy有一块矩形土地,被分为 N*M 块 1*1 的小格子。 有的格子含有障碍物。 如果从格子A可以走到格子B,那么两个格子的距离就为两个格子中心的欧几里德距离。 如果从格子A不可以走到格子B,就没有距离。 如果格子X和格子Y有公共边,并且X和Y均不含有障碍物,就可以从X走到Y。 如果windy可以移走T块障碍物,求所有格子间的最大距离。 保证移走T块障碍物以后,至少有一个格子不含有障碍物。

Input

输入文件maxlength.in第一行包含三个整数,N M T。 接下来有N行,每行一个长度为M的字符串,'0'表示空格子,'1'表示该格子含有障碍物。

Output

输出文件maxlength.out包含一个浮点数,保留6位小数。

Sample Input

【输入样例一】
3 3 0
001
001
110

【输入样例二】
4 3 0
001
001
011
000

【输入样例三】
3 3 1
001
001
001

Sample Output

【输出样例一】
1.414214
【输出样例二】
3.605551
【输出样例三】
2.828427
一道spfa,打码20分钟,debug两小时,总是wa一组数据,让妹子帮忙debug,然后2个小时过去了。。最后发现是写spfa的循环队列的时候,mod应该是maxnn写成了maxn,太对不起妹子啦。
//Serene
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<cmath>
using namespace std;
const int maxn=30+5,maxnn=maxn*maxn;
int n,m,T;
bool tu[maxnn];
double ans;int aa;char cc;
int read() {aa=0;cc=getchar();while(cc<'0'||cc>'9') cc=getchar();while(cc>='0'&&cc<='9') aa=aa*10+cc-'0',cc=getchar();return aa;
}int fir[maxnn],nxt[4*maxnn],to[4*maxnn],e=0;
void add(int x,int y) {to[++e]=y;nxt[e]=fir[x];fir[x]=e;to[++e]=x;nxt[e]=fir[y];fir[y]=e;
}double get_dis(int x,int y) {int a1=(x-1)/m+1,b1=(x-1)%m+1;int a2=(y-1)/m+1,b2=(y-1)%m+1;double c1=(double)a2-(double)a1,c2=(double)b2-(double)b1;return sqrt(c1*c1+c2*c2);
}int dis[maxnn],zz[maxnn];
bool vis[maxnn];
void spfa(int st,bool p) {int s=1,t=0,x,y,z;memset(vis,0,sizeof(vis));memset(dis,0x3f3f3f3f,sizeof(dis));vis[st]=1;zz[++t]=st;dis[st]=p;while(s<=t) {x=zz[s%maxnn];//for(y=fir[x];y;y=nxt[y]) {z=to[y];if(dis[x]+tu[z]>T||dis[x]+tu[z]>=dis[z]) continue;dis[z]=dis[x]+tu[z];if(!vis[z]) {vis[z]=1;t++;zz[t%maxnn]=z;//}}s++;vis[x]=0;}for(int i=1;i<=n*m;++i) if(dis[i]<=T) {double ff=get_dis(i,st);if(ff>ans) ans=max(ans,ff);}
}int main() {n=read();m=read();T=read(); int x,z;char y;for(int i=1;i<=n;++i) for(int j=1;j<=m;++j) {y=getchar();while(y<'0'||y>'1') y=getchar();x=(i-1)*m+j;z=tu[x]=y-'0';if(i>1) add(x,x-m);if(j>1) add(x,x-1);}for(int i=1;i<=n;++i) for(int j=1;j<=m;++j) {x=(i-1)*m+j;spfa(x,tu[x]);}printf("%.6lf",ans);return 0;
}

  

转载于:https://www.cnblogs.com/Serene-shixinyi/p/7517916.html

bzoj1295 最长距离相关推荐

  1. BZOJ1295 [SCOI2009]最长距离

    Description windy有一块矩形土地,被分为 N*M 块 1*1 的小格子. 有的格子含有障碍物. 如果从格子A可以走到格子B,那么两个格子的距离就为两个格子中心的欧几里德距离. 如果从格 ...

  2. 如何评价LoRa这项应用于低功率长距离场景的物联网传输技术?

    大家好,我是无际单片机编程徐工. 我2010年毕业就开始做无线相关的工作,那个时候用的是ASK无线通讯,收发模块都是我们自己做的. 那今年,给我最深刻的就是没完没了地调试无线模块的参数,测试无线通讯距 ...

  3. DWM1000 长距离模块讨论

    蓝点DWM1000 模块已经打样测试完毕,有兴趣的可以申请购买了,更多信息参见 蓝点论坛 正文: DWM1000 作为超宽室内带测距/定位的代表,官方给出的模块标准距离30-50m,而目前X宝上有很多 ...

  4. 潘建伟团队最新研究成果登上Nature:首次实现1120公里长距离无中继纠缠量子密钥分发...

    鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 量子通信,又获里程碑式突破. 这一次,依然来自潘建伟教授团队-- "墨子号"量子科学实验卫星,实现了1120公里长距离无 ...

  5. 这样一款超低功耗的集成 2.4 GHz Wi-Fi 和支持长距离的 Bluetooth LE 5.0的SOC,你怎么能不爱它?

    今天要介绍的这个主角是谁呢?超低功耗的集成 2.4 GHz Wi-Fi 和支持长距离的 Bluetooth LE 5.0的SOC,价格还能对标他的"前辈"单WIFI的ESP8266 ...

  6. hdu 2196 叶子节点最长距离(树DP)

    http://www.cnblogs.com/kuangbin/archive/2012/08/28/2659915.html 求每个节点到叶子节点的最长距离 需要保存每个节点到叶子节点距离的最大值和 ...

  7. 道路里程桩号标注_2000公里长距离电车远行,逸动EV460对里程焦虑说不

    聊起纯电动车型,大多数人首先想到的就是续航问题,近些年来尽管技术在不断进步,但"里程焦虑"的毛病似乎也只是治标不治本.考虑购买新能源车型的消费群体的需求大部分均是经济环保,解决城市 ...

  8. 华三交换机mode是什么意思_POE交换机150米、长距离250米传输是什么意思?

    很多人对POE交换机传输距离一直存在疑惑. 1. 什么是POE POE是Power over Ethernet的缩写,指的是在现有的以太网Cat.5不限基础架构不做任何改动的情况下,在为一些基于IP的 ...

  9. 光纤收发器长距离的传输过程出现死机的解决方案

    光纤收发器是网络通信中必不可少的一种设备,但是,我们在使用过程中难免会遇到各种各样的问题,其中,光纤收发器出现死机可以说是很常见的一种故障,那么,光纤收发器经常会出现死机到底是什么原因,是光纤收发器坏 ...

  10. bzoj 1295: [SCOI2009]最长距离

    题目链接 1295: [SCOI2009]最长距离 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1165  Solved: 619 [Submit ...

最新文章

  1. Redis5.0之Stream案例应用解读
  2. 11月3号晚7点中科院南土所梁玉婷报告:土壤微生物功能组学与关键类群识别
  3. 白话Elasticsearch04- 结构化搜索之使用terms query搜索多个值以及多值搜索结果优化
  4. CLR Via CSharp读书笔记(26) - 计算限制的异步操作
  5. lenze变频器怎么更改地址_S7-200 SMART PLC Modbus通信控制 V20变频器
  6. 选择文字就能选择复选框
  7. php vo 遍历,thinkPHP简单遍历数组方法分析
  8. python正则匹配找到所有的浮点数_如何利用Python抓取静态网站及其内部资源
  9. 【二分法】计蒜客:二分快速幂
  10. ​七周二次课(5月7日)监控io性能、free命令、ps命令、查看网络状态、linux下抓包...
  11. 苹果电脑Mac系统如何下载安装谷歌Chrome浏览器
  12. XSS Challenges stage#12-16 闯关详解
  13. win10升级助手_win7怎么升级win10?腾讯电脑管家升级win10教程
  14. Linux中vsftpd服务配置(匿名,用户,虚拟用户)
  15. Java开发关键技术
  16. recycler 刷新图片闪烁_android 解决RecyclerView notifyDataSetChanged刷新闪屏问题(图片刷新)...
  17. 手机连接电脑后,电脑上显示不出来手机的文件夹
  18. 统一用户认证和单点登录和授权的原理与流程
  19. 创建带图文的超级菜单(导航菜单)(二)
  20. 2007 上海找工作

热门文章

  1. 列表生成式、生成器表达式、模块导入
  2. 关于sqlmap的配置和基本使用教程
  3. 经典股票图形:蛟龙出海
  4. 文本主题模型之LDA(二) LDA求解之Gibbs采样算法
  5. shell脚本:批量添加用户,并设置随机字符为密码
  6. 用cglib生成的代理类取不到注解的问题
  7. C#之SqlDependency数据库缓存
  8. 2013-06-18
  9. WPF中同一窗口下的界面切换
  10. 哪些人可以报考公务员 哪些人不能报考公务员