19-10-25-G-悲伤
此题未通过 [ 老帅哥 ] 认证。
ZJ一下:
T1,明显是二分答案+$dij/SPFA$
T2,没看懂题。
T3,打了一个$\Theta(N^2)$暴力。
事实上……
T1,T2死了。
T1中
每次可以向上下左右四个方向走一格,走一格用时1 秒。
你有一个机器,使得每次在上下移动一步时,用时为k 秒。
你确定向上下不可以走么(一定要用机器???)
明明可以向上下左右四个方向走一格,走一格用时1秒
不管了,语文问题。
最后在作者××巨佬的自动防AK系统的作用下。
|
47
|
Miemeng | 0
02:58:59
|
0
02:58:59
|
30
02:59:00
|
30
02:59:00
|
我祝福你,作者
%%%ZZD
nmsl
题解:
T1
一大句话题意:
有一个网格图,有格子不能走,向上下走需要$k$秒,向左右走需要$1$秒,问从$(x1,y1)$到$(x2,y2)$的最短时间为$s$时$k$的值。
#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
#define LF double
#define N 111 using namespace std; const LF eps=1e-5;
int mp[N][N];
int lines,cols;
int stx,sty,fix,fiy;
LF targ,dis[N][N];
bool is_v[N][N];
struct POINT{
int x,y;
double dis;
POINT(){}
POINT(int a,int b,double c):x(a),y(b),dis(c){}
friend bool operator > (const POINT &a,const POINT &b){
return a.dis>b.dis;
}
};
priority_queue<POINT,vector<POINT>,greater<POINT> >q;
inline bool inmp(int x,int y){
return x>=1&&x<=lines&&y>=1&&y<=cols&&mp[x][y]==0;
}
LF check(LF ud){
memset(is_v,0,sizeof is_v);
for(int i=1;i<=lines;i++)
for(int j=1;j<=cols;j++)
dis[i][j]=1e10;
dis[stx][sty]=0;
q.push(POINT(stx,sty,0.0));
while(!q.empty()){
int fx=q.top().x,fy=q.top().y;
// cout<<fx<<" "<<fy<<" "<<mp[fx][fy]<<" "<<dis[fx][fy]<<endl;
q.pop();
if(is_v[fx][fy])continue;
is_v[fx][fy]=1;
if(inmp(fx+1,fy)&&dis[fx+1][fy]>dis[fx][fy]+ud){//puts("A");
dis[fx+1][fy]=dis[fx][fy]+ud;
q.push(POINT(fx+1,fy,dis[fx+1][fy]));
}
if(inmp(fx-1,fy)&&dis[fx-1][fy]>dis[fx][fy]+ud){//puts("B");
dis[fx-1][fy]=dis[fx][fy]+ud;
q.push(POINT(fx-1,fy,dis[fx-1][fy]));
}
if(inmp(fx,fy+1)&&dis[fx][fy+1]>dis[fx][fy]+1.0){//puts("C");
dis[fx][fy+1]=dis[fx][fy]+1.0;
q.push(POINT(fx,fy+1,dis[fx][fy+1]));
}
if(inmp(fx,fy-1)&&dis[fx][fy-1]>dis[fx][fy]+1.0){//puts("D");
dis[fx][fy-1]=dis[fx][fy]+1.0;
q.push(POINT(fx,fy-1,dis[fx][fy-1]));
}
}
return dis[fix][fiy];
}
int main(){
// freopen("1.in" ,"r",stdin);
// freopen("maze.in" ,"r",stdin);\
freopen("maze.out","w",stdout);
scanf("%d%d%d%d%d%d",&lines,&cols,&stx,&sty,&fix,&fiy);
for(int i=1;i<=lines;i++)
for(int j=1;j<=cols;j++)
scanf("%d",&mp[i][j]);
scanf("%lf",&targ);
LF l=0,r=lines*cols;
while(r-l>eps){
LF mid=(l+r)/2;
// cout<<l<<" "<<r<<" "<<check(mid)<<endl;
if(check(mid)>targ) r=mid;
else l=mid;
}
printf("%.3lf\n",l);
// cout<<clock()<<endl;
}
T2
T3
19-10-25-G-悲伤的更多相关文章
- 程序员的 Ubuntu 19.10 配置与优化指南
原文地址:程序员的 Ubuntu 19.10 配置与优化指南 0x00 环境 CPU: Intel Core i9-9900k GPU: GeForce RTX 2070 SUPER RAM: DDR ...
- 背水一战 Windows 10 (25) - MVVM: 通过 x:Bind 实现 MVVM(不用 Command)
[源码下载] 背水一战 Windows 10 (25) - MVVM: 通过 x:Bind 实现 MVVM(不用 Command) 作者:webabcd 介绍背水一战 Windows 10 之 MVV ...
- /proc/interrupts 统计2.6.38.8与3.10.25差异
eth4进,eth5出 linux-3.10.25 67: 2 3 2 3 PCI-MSI-edge eth468: ...
- CentOS安装NodeJS v0.10.25 + Express
安装必需组件 yum -y install gcc make gcc-c++ openssl-devel wget cd ~wget http://nodejs.org/dist/v0.10.25/n ...
- 10.25 正睿停课训练 Day9
目录 2018.10.25 正睿停课训练 Day9 A 数独(思路 DP) B 红绿灯(最短路Dijkstra) C 轰炸(计算几何 圆并) 考试代码 B C 2018.10.25 正睿停课训练 Da ...
- Ubuntu 19.10 发布 | 云原生生态周报 Vol. 24
作者 | 木苏.进超.冬岛.元毅.心水.衷源 业界要闻 1.云原生编程语言 Pulumi 1.0 pulumi ,一款中立的开源云开发平台,Pulumi 支持多语言.混合云环境.完全可扩展.初期支持 ...
- [Linux] 在 Ubuntu 19.10 上开启 SSH 服务并允许远程登录
在 Ubuntu 19.10 上安装 SSH,并开启服务 0.检查并确认系统当前是否已安装SSH: sudo ps -e | grep ssh 如果只有 ssh-agent 说明 ssh-server ...
- [Linux] 树莓派 4B 安装 Ubuntu 19.10 (Eoan Ermine) IOT 版
硬件:Raspberry Pi 4B系统:Ubuntu 19.10 (Eoan Ermine) for IOT官网:https://ubuntu.com/download/iot/raspberry- ...
- Java习题10.25
Java习题10.25 1. 实际上这道题考查的是两同两小一大原则: 方法名相同,参数类型相同 子类返回类型小于等于父类方法返回类型, 子类抛出异常小于等于父类方法抛出异常, 子类访问权限大于等于父类 ...
- Ubuntu 19.10 安装 jupyter
安装pip3 ubuntu 19.10 已经没有python了,取代的是python3. 执行sudo apt install python3-pip安装pip3 安装jupyter 执行sudo p ...
随机推荐
- Kibana启动报错 server is not ready yet的解决方案
前言: 今天在搭建elasticsearch集群的时候,再次使用Kibana操作elasticsearch的时候报告Kibana server is not ready yet的问题, 通过在 ...
- 关于InputMethodManager的使用方法
InputMethodManager是一个用于控制显示或隐藏输入法面板的类(当然还有其他作用).获取InPutMethodManager的方法很简单. InputMethodManager imm = ...
- socket2里面,有些函数带WSA开头,有些不带。请问有何区别?
WSASocket可以使用WinSock特有功能,比如重叠IO,用dwflags指定. WSA的A是指api,用于区别spi,因为在spi中还有wspsocket,wspaccept等... 在 ...
- VS2010-MFC(常用控件:标签控件Tab Control 上)
转自:http://www.jizhuomi.com/software/205.html 前面两节讲了树形控件Tree Control,本节开始讲解标签控件Tab Control,也可以称为选项卡控件 ...
- CSS 实现自适应正方形
在处理移动端页面时,我们有时会需要将banner图做成与屏幕等宽的正方形以获得最佳的体验效果,比如,商品详情页, 方法1.CSS3 vw单位 CSS3 中新增了一组相对于可视区域百分比的长度单位 vw ...
- 4_3.springboot2.x之默认访问首页和国际化
1.默认访问首页 1.引入thymeleaf和引入bootstrap <!--引入thymeleaf--> <dependency> <groupId>org.sp ...
- spring AOP 编程--AspectJ注解方式 (4)
1. AOP 简介 AOP(Aspect-Oriented Programming, 面向切面编程): 是一种新的方法论, 是对传统 OOP(Object-Oriented Programming, ...
- selenium基础(控制浏览器)
python基础(控制浏览器) 控制浏览器 控制浏览器窗口大小 设置浏览器屏幕大小方法:set_window_size() 浏览器最大化:maximize_window() 浏览器最小化:minimi ...
- SQL语句的四种连接
SQL的四种连接查询 内连接 inner join 或者 join 外连接 左连接 left join 或者 left outer join 右连接 right join 或者 right ou ...
- easyui combotree的使用示例
一.View: 1.定义输入控件 <input id="ParentId" name="ParentId"> 2.绑定combotree $('#P ...