图论基础整理
来源:互联网 发布:淘宝商城包 编辑:程序博客网 时间:2024/06/05 20:29
写在最前面:这是一篇很水很水的水博客,如果不无聊的同学就不要点进来了哈。我只是想记录一下今天复习的基础。
1.POJ1125、POJ3615
这两题都是非常水的floyd。
前一题是求图上一节点,使得它到所有点的最大距离最小。
显然只要floyd求所有点之间的最短路,然后枚举所有节点作为答案是否成立即可。
后一题是更水的多源最短路,初学floyd的同学都能轻松水过。
2.HDU2544、HDU1874、HDU2066
这三题都是非常水的最短路径问题,不过我对于dijstra还是比较生疏的(因为平时不太用到,我一般都用SPFA),堆优化的dijstra就更不用说了。
不过今天听说SPFA不如dijstra那么稳定,可能会出现一些奇奇怪怪的错误,所以我还是去复习了一发dijstra加堆优化。
在这里贴一下HDU2544的dijstra加堆优化的代码吧。
#include <cstdio>#include <cstring>#include <algorithm>#include <queue>#define N 110using namespace std;struct note{int d,w;bool operator < (const note lyf) const {return w>lyf.w;}};struct side{int to,w,nt;}s[20010];priority_queue <note> que;int n,m,x,y,w,dis[N],num,h[N];bool b[N];inline void add(int x,int y,int w){s[++num]=(side){y,w,h[x]},h[x]=num;s[++num]=(side){x,w,h[y]},h[y]=num;}int main(void){while (scanf("%d%d",&n,&m),n+m){memset(s,0,sizeof s),memset(h,0,sizeof h),num=0;for (int i=1; i<=m; ++i) scanf("%d%d%d",&x,&y,&w),add(x,y,w);memset(dis,0x3f,sizeof dis),memset(b,0,sizeof b);dis[1]=0,que.push((note){1,dis[1]});while (!que.empty()){int p=que.top().d;que.pop();if (b[p]) continue;b[p]=1;for (int i=h[p]; i; i=s[i].nt)if (dis[s[i].to]>dis[p]+s[i].w) dis[s[i].to]=dis[p]+s[i].w,que.push((note){s[i].to,dis[s[i].to]});}printf("%d\n",dis[n]);}return 0;}3.POJ1511
这题嘛,需要稍微想一下(也只是稍微),题目大意是求一号节点到其他所有节点的距离和其他所有节点到一号节点的距离。
因为题目给出的是有向边,我们只需要建一张反向图,在反向图中把题目给出的边全部反向,然后对正向图和反向图各跑一边SPFA,求一号节点在两张图中到其他所有点的距离和就行了。(话说这题和洛谷1821的解法不是一模一样的吗?)
4.POJ3083
这题嘛,就是深搜和广搜的结合体嘛,对于前两问用深搜解决,后一问用广搜解决。
5.POJ3660
传递闭包什么的是什么鬼?!我只知道这题只需要用floyd判断图的连通性,把题目给出的关系看成双向边,做一遍floyd,如果一个节点和其他所有节点都是联通的,那么这个节点的排名就是确定的,加一下答案。
以上,就是今天的所有内容。各位大佬不喜勿喷啊QWQ
- 图论基础整理
- 基础整理
- 整理基础
- 基础整理
- 数据库ER图基础概念整理
- 【neo4j图数据库】基础入门&案例整理
- Emacs基础命令整理
- javascript(基础整理一)
- javascript(基础整理二)
- javascript(基础整理三)
- javascript(基础整理四)
- 知识整理:sql基础
- Sql基础语句【整理】
- oracle基础整理一
- java基础整理1
- java基础整理7
- [学习整理]VIM基础
- 回顾技术,整理基础
- nginx配置vhost例子
- Linux学习总结 unit05权限管理(文件管理)
- Sql Server 的特殊用法
- winrar注册码激活码
- Nginx配置
- 图论基础整理
- java基础笔记之访问修饰符
- Ryu Application API 原文加翻译(二)
- MySQL 修改默认字符集
- Replication 实践
- Mac下最简单翻 墙的方法
- photoshopCS5破解
- mysql中执行F8出现错误代码: 1005 Can't create table 'xxx' (errno: 150)
- leetcode[Find All Numbers Disappeared in an Array]