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题解的更多相关文章

  1. POJ 2253 Frogger(最短路&Floyd)题解

    题意:想给你公青蛙位置,再给你母青蛙位置,然后给你剩余位置,问你怎么走,公青蛙全力跳的的最远距离最小. 思路:这里不是求最短路径,而是要你找一条路,青蛙走这条路时,对他跳远要求最低.这个思想还是挺好迁 ...

  2. poj 2253 Frogger【最小生成树变形】【kruskal】

    Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 30427   Accepted: 9806 Descript ...

  3. POJ2253:Frogger(改造Dijkstra)

    Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 64864   Accepted: 20127 题目链接:ht ...

  4. kuangbin带你飞 最短路 题解

    求一个图最短路边的办法.好像下面的那个有问题.单向边和双向边一定是有区别的.这个比较容易.参照该文的最短路网络流题目和连通图题目一题求最短路关节边 另外上述2个题目的代码好像有问题. 在UVALIVE ...

  5. POJ 2253 Frogger Floyd

    原题链接:http://poj.org/problem?id=2253 Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissi ...

  6. POJ2253 Frogger —— 最短路变形

    题目链接:http://poj.org/problem?id=2253 Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissi ...

  7. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  8. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  9. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  10. POJ 2253 Frogger(Dijkstra)

    传送门 Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 39453   Accepted: 12691 Des ...

随机推荐

  1. [转帖]OceanBase实验4:迁移MySQL数据到OceanBase集群

    服务器环境 1)12核48G,操作系统为centos 7.9系统,单节点三副本1-1-1集群. 2)源MySQL数据库:与OceanBase同一台服务器,版本为MySQL 5.7. 1.使用 mysq ...

  2. [转帖]11GR2数据库审计日志自动清理

    审计日志如果把SYSTEM表空间撑爆,也会导致数据库停摆,且11g默认审计是开启状态. 今天就遇到了这样的情况,写了下面脚本来实现自动清理工作,记录操作过程. TRUNCATE TABLE SYS.A ...

  3. [转帖]Kafka常见使用场景与Kafka高性能之道

    https://juejin.cn/post/6958997115012186119 消息队列使用场景 队列,在数据结构中是一种先进先出的结构,消息队列可以看成是一个盛放消息的容器,这些消息等待着各种 ...

  4. JVM内存配置的再次思考

    JVM内存配置的再次思考 摘要 最近研究过不少内存分配相关的处理 今天晚上突然感觉还不是非常系统. 还是想能够细致的在学习一下. 希望能够慢慢的拾遗,提高自己 操作系统内存的使用情况 本文主要想思考l ...

  5. BPF的简单学习

    BPF的简单学习 前言 本来规划过年期间学习一下bpf相关的内容 但是因为自己没有坚持学习,所以到最后一天才开始整理. 本来想深入学习一下相关内容,但是已经感觉已经无法完成. 最近大半年进行了很多性能 ...

  6. Linux执行SQLSERVER语句的简单方法

    背景 因为WTF的原因.经常有人让执行各种乱七八槽的删除语句 因为产品支持了10多种数据库. 这个工作量非常复杂. 为了简单起见,想着能够批量执行部分SQL. 其他的都处理过了,但是SQLSERVER ...

  7. [专题]中立遭质疑,提价遭反对,ARM的生存难题怎么破?

    中立遭质疑,提价遭反对,ARM的生存难题怎么破? https://news.cnblogs.com/n/669715/ ARM税要提高.. RISC-V的机会? 文/黎文婕 来源:锌刻度(ID:znk ...

  8. [转载]关于NSA的EternalBlue(永恒之蓝) ms17-010漏洞利用

    2017年5月19日   感谢原作者:http://www.cnblogs.com/cnbluerain/           好久没有用这个日志了,最近WannaCry横行,媒体铺天盖地的报道,我这 ...

  9. js中数组reduce的使用原来这么简单

    reduce 的学习方法 array.reduce(callback(prev, currentValue, index, arr), initialValue) //简写就是下面这样的 arr.re ...

  10. Fabric区块链浏览器(1)

    本文是区块链浏览器系列的第三篇,本文介绍区块链浏览器的主体部分,即区块数据的解析. 这一版本的区块链浏览器是基于gin实现的,只提供三种接口: /block/upload:POST,上传Protobu ...