Frogger题解
法一:floyd
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<iomanip>
#define int long long int
using namespace std;
const int N = 510;
const int M = 1e5 + 10;
int n, idx;
double f[N][N], x[M], y[M];
signed main(){
while(cin >> n && n){
idx ++;
memset(f, 0, sizeof f);
for(int i = 1; i <= n; i++){
cin >> x[i] >> y[i];
}
for(int i = 1;i <= n; i++){
for(int j = i + 1; j <= n; j++){
double dis = sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j]));
f[i][j] = dis;
f[j][i] = dis;
}
}
for(int k = 1; k <= n; k++){
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
f[i][j] = min(f[i][j], max(f[i][k], f[k][j]));
}
}
}
cout <<"Scenario #" << idx << endl;
cout <<"Frog Distance = " << fixed << setprecision(3) << f[1][2] << endl;
cout << endl;
}
return 0;
}
法二:dijkstra
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<iomanip>
#define int long long int
using namespace std;
const int N = 510;
const int M = 1e5 + 10;
int n, idx;
double f[N][N], x[M], y[M], dist[N];
bool vis[N];
void dijkstra(){
for(int i = 1; i <= n; i++){
vis[i] = false;
dist[i] = f[1][i];
}
vis[1] = true;
//每次找到未被更新的最小的值对应的点,然后用这个点去更新其他点
for(int i = 1; i <= n; i++){
int u = -1;
double minn = 0x3f3f3f3f;
for(int j = 1; j <= n; j++){
if(!vis[j] && dist[j] < minn){
minn = dist[j];
u = j;
}
}
vis[u] = true;
for(int j = 1; j <= n; j++){
if(!vis[j] && dist[j] > max(dist[u], f[u][j])){
dist[j] = max(dist[u], f[u][j]);
}
}
}
}
signed main(){
while(cin >> n && n){
idx ++;
memset(f, 0, sizeof f);
for(int i = 1; i <= n; i++){
cin >> x[i] >> y[i];
}
for(int i = 1;i <= n; i++){
for(int j = i + 1; j <= n; j++){
double dis = sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j]));
f[i][j] = dis;
f[j][i] = dis;
}
}
dijkstra();
cout <<"Scenario #" << idx << endl;
cout <<"Frog Distance = " << fixed << setprecision(3) << dist[2] << endl;
cout << endl;
}
return 0;
}
Frogger题解的更多相关文章
- POJ 2253 Frogger(最短路&Floyd)题解
题意:想给你公青蛙位置,再给你母青蛙位置,然后给你剩余位置,问你怎么走,公青蛙全力跳的的最远距离最小. 思路:这里不是求最短路径,而是要你找一条路,青蛙走这条路时,对他跳远要求最低.这个思想还是挺好迁 ...
- poj 2253 Frogger【最小生成树变形】【kruskal】
Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 30427 Accepted: 9806 Descript ...
- POJ2253:Frogger(改造Dijkstra)
Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 64864 Accepted: 20127 题目链接:ht ...
- kuangbin带你飞 最短路 题解
求一个图最短路边的办法.好像下面的那个有问题.单向边和双向边一定是有区别的.这个比较容易.参照该文的最短路网络流题目和连通图题目一题求最短路关节边 另外上述2个题目的代码好像有问题. 在UVALIVE ...
- POJ 2253 Frogger Floyd
原题链接:http://poj.org/problem?id=2253 Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissi ...
- POJ2253 Frogger —— 最短路变形
题目链接:http://poj.org/problem?id=2253 Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissi ...
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- POJ 2253 Frogger(Dijkstra)
传送门 Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 39453 Accepted: 12691 Des ...
随机推荐
- [转帖]一文看懂Linux内核页缓存(Page Cache)
https://kernel.0voice.com/forum.php?mod=viewthread&tid=629 玩转Linux内核 发布于 2022-8-9 22:19:08 阅读 ...
- Numa以及其他内存参数等对Oracle的影响
Numa以及其他内存参数等对Oracle的影响 背景知识: Numa的理解 Numa 分一致性内存访问结构 主要是对应UMA 一致性内存访问而言的. 在最初一个服务器只有一个CPU的场景下, 都是UM ...
- [转帖]TiKV 内存调优
TiDB试用 来源:TiDB 浏览 87 扫码 分享 2023-05-09 09:02:19 TiKV 内存参数性能调优 参数说明 TiKV 内存使用情况 TiKV 机器配置推荐 TiKV 内存参数 ...
- [转帖]Dockerfile中CMD和ENTRYPOINT命令详解
https://www.jb51.net/article/136264.htm Dockerfile中的ENTRYPOINT指令和CMD指令都可以设置容器启动时要执行的命令,但用途是有略微不同的. ...
- [转帖]使用 mydumper/loader 全量导入数据
数据迁移 mydumper 是一个更强大的数据迁移工具,具体可以参考 https://github.com/maxbube/mydumper. 我们使用 mydumper 从 MySQL 导出数据,然 ...
- ebpf 单行程序学习
ebpf 单行程序学习 背景 公司方神借给我一本: <BPF之巅:洞悉linux系统和应用性能>纸质书 拿回家晚上在沙发上看了几天. 感觉书很厚看的不是很系统. 仅能凭自己的感觉总结一下这 ...
- ARM平台安装Docker的方法
1. 找了一下有一个网站能够下载docker的arm的deb包可以使用 网址为: https://download.docker.com/linux/ubuntu/dists/xenial/pool/ ...
- zabbix基于容器化在UOS1050E上面的安装与使用
前言 想着能够监控一下操作系统的日志. 因为国产化的需求, 所以我这边使用了UOS1050E 安装zabbix时多次提示缺少php-json 或者是缺少一些libevent等组件. 自己尝试进行解决发 ...
- Opentelemetry Metrics API
Opentelemetry Metrics API 目录 Opentelemetry Metrics API 概览 在没有安装SDK情况下的API行为 Measurements Metric Inst ...
- pytest.ini配置文件
pytest.ini文件是pytest框架独有的配置文件,主要作用就是在运行pytest.main时可指定运行顺序,也 就相当于在Terminal输入pytest+参数+路径效果一致,下面介绍几种简单 ...