Frogger

  1. 法一:floyd
  2. #include<iostream>
  3. #include<cstring>
  4. #include<algorithm>
  5. #include<cstdio>
  6. #include<cmath>
  7. #include<iomanip>
  8. #define int long long int
  9. using namespace std;
  10. const int N = 510;
  11. const int M = 1e5 + 10;
  12. int n, idx;
  13. double f[N][N], x[M], y[M];
  14. signed main(){
  15. while(cin >> n && n){
  16. idx ++;
  17. memset(f, 0, sizeof f);
  18. for(int i = 1; i <= n; i++){
  19. cin >> x[i] >> y[i];
  20. }
  21. for(int i = 1;i <= n; i++){
  22. for(int j = i + 1; j <= n; j++){
  23. double dis = sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j]));
  24. f[i][j] = dis;
  25. f[j][i] = dis;
  26. }
  27. }
  28. for(int k = 1; k <= n; k++){
  29. for(int i = 1; i <= n; i++){
  30. for(int j = 1; j <= n; j++){
  31. f[i][j] = min(f[i][j], max(f[i][k], f[k][j]));
  32. }
  33. }
  34. }
  35. cout <<"Scenario #" << idx << endl;
  36. cout <<"Frog Distance = " << fixed << setprecision(3) << f[1][2] << endl;
  37. cout << endl;
  38. }
  39. return 0;
  40. }
  1. 法二:dijkstra
  2. #include<iostream>
  3. #include<cstring>
  4. #include<algorithm>
  5. #include<cstdio>
  6. #include<cmath>
  7. #include<iomanip>
  8. #define int long long int
  9. using namespace std;
  10. const int N = 510;
  11. const int M = 1e5 + 10;
  12. int n, idx;
  13. double f[N][N], x[M], y[M], dist[N];
  14. bool vis[N];
  15. void dijkstra(){
  16. for(int i = 1; i <= n; i++){
  17. vis[i] = false;
  18. dist[i] = f[1][i];
  19. }
  20. vis[1] = true;
  21. //每次找到未被更新的最小的值对应的点,然后用这个点去更新其他点
  22. for(int i = 1; i <= n; i++){
  23. int u = -1;
  24. double minn = 0x3f3f3f3f;
  25. for(int j = 1; j <= n; j++){
  26. if(!vis[j] && dist[j] < minn){
  27. minn = dist[j];
  28. u = j;
  29. }
  30. }
  31. vis[u] = true;
  32. for(int j = 1; j <= n; j++){
  33. if(!vis[j] && dist[j] > max(dist[u], f[u][j])){
  34. dist[j] = max(dist[u], f[u][j]);
  35. }
  36. }
  37. }
  38. }
  39. signed main(){
  40. while(cin >> n && n){
  41. idx ++;
  42. memset(f, 0, sizeof f);
  43. for(int i = 1; i <= n; i++){
  44. cin >> x[i] >> y[i];
  45. }
  46. for(int i = 1;i <= n; i++){
  47. for(int j = i + 1; j <= n; j++){
  48. double dis = sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j]));
  49. f[i][j] = dis;
  50. f[j][i] = dis;
  51. }
  52. }
  53. dijkstra();
  54. cout <<"Scenario #" << idx << endl;
  55. cout <<"Frog Distance = " << fixed << setprecision(3) << dist[2] << endl;
  56. cout << endl;
  57. }
  58. return 0;
  59. }

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. Python 变量?对象?引用?赋值?一个例子解释清楚

    哈喽大家好,我是咸鱼. 前天有个小伙伴找到我,给了我一段 python 代码: a = [1, 2] a[1] = a print(a[1]) 然后问我为什么结果是 [1, [...]],我一看这个问 ...

  2. [转帖]Oracle JDBC中的语句缓存

    老熊 Oracle性能优化 2013-09-13 在Oracle数据库中,SQL解析有几种: 硬解析,过多的硬解析在系统中产生shared pool latch和library cache liatc ...

  3. [转帖]Web性能优化工具WebPageTest(一)——总览与配置

    https://www.cnblogs.com/strick/p/6677836.html 网站性能优化工具大致分为两类:综合类和RUM类(实时监控用户类),WebPageTest属于综合类. Web ...

  4. 【转帖】ChatGPT的前身:InstructGPT

    https://www.jianshu.com/p/6daf35cbc46a ChatGPT的论文目前还没有发布,在其官方博客(https://openai.com/blog/chatgpt/)中对方 ...

  5. Oracle使用临时表与直接关联的性能比较

    Oracle使用临时表与直接关联的性能比较 摘要 自己的数据库水平还是太low了. 之前有很多店理解过. 但是一直理解的不深入. 比如我们这边有很多使用临时表存储中间结果数据 然后对结果数据进行关联查 ...

  6. [转帖]Shell~echo -e 颜色输出

    https://www.cnblogs.com/ElegantSmile/p/11144879.html echo -e 可以控制字体颜色和背景颜色输出 从一个例子开始: # echo -e &quo ...

  7. 可插拔组件设计机制—SPI

    作者:京东物流 孔祥东 1.SPI 是什么? SPI 的全称是Service Provider Interface,即提供服务接口:是一种服务发现机制,SPI 的本质是将接口实现类的全限定名配置在文件 ...

  8. 巧用GenericObjectPool创建自定义对象池

    作者:京东物流 高圆庆 1 前言 通常一个对象创建.销毁非常耗时的时候,我们不会频繁的创建和销毁它,而是考虑复用.复用对象的一种做法就是对象池,将创建好的对象放入池中维护起来,下次再用的时候直接拿池中 ...

  9. Machine Learning | Coursera 课后代码

    Machine Learning | Coursera GitHub地址:https://github.com/hanlulu1998/Coursera-Machine-Learning Machin ...

  10. vim 从嫌弃到依赖(23)——最后的闲扯

    截止到上一篇文章,关于vim的基础操作都已经讨论完了,这篇我主要就是闲扯,瞎聊.就想毕业论文都有一个致谢一样,这篇我们就作为整个系列的致谢吧 学习vim到底能给我们带来什么 学习vim到底能给我们带来 ...