hdu6005 Pandaland 想法+dijkstra
/**
题目:hdu6005 Pandaland
链接:http://acm.hdu.edu.cn/showproblem.php?pid=6005
题意:给定一个带权无向图,求权值和最小的环的值,如果不存在环输出0; 思路:枚举每条边,然后dijkstra求s到t的距离,dijkstra过程中舍去s-t的这条边。
两个优化:dijkstra找到了t就跳出。或者出队列的距离>=当前找到的最小距离跳出。 */ #include<iostream>
#include<cstdio>
#include<algorithm>
#include<map>
#include<vector>
#include<queue>
#include<cstring>
using namespace std;
typedef pair<int,int> P;
typedef long long LL;
const int N = 4e3+;
const int INF = 0x3f3f3f3f;
struct edge{int to, cost;};
int V, mis;
vector<edge> G[*N];
int d[N*+];
void dijkstra(int s,int t)
{
priority_queue<P,vector<P>, greater<P> > que;
fill(d,d+V,INF);
d[s] = ;
que.push(P(,s));
while(!que.empty()){
P p = que.top(); que.pop();
int v = p.second;
if(d[v]<p.first) continue;
if(v==t) break;
if(d[v]>=mis) break;
for(int i = ; i < (int)G[v].size(); i++){
edge e = G[v][i];
if(v==s&&e.to==t) continue;
if(d[e.to]>d[v]+e.cost){
d[e.to] = d[v]+e.cost;
que.push(P(d[e.to],e.to));
}
}
}
}
map<P,int> mp;
struct node
{
int u,v;
int cost;
}Eg[N];
int main()
{
int cas = , T, m;
cin>>T;
while(T--)
{
int cnt = ;
scanf("%d",&m);
int cost, x1, y1, x2, y2;
for(int i = ; i <= *N; i++) G[i].clear();
mp.clear();
for(int i = ; i <= m; i++){
scanf("%d%d%d%d%d",&x1,&y1,&x2,&y2,&cost);
int u, v;
if(mp[P(x1,y1)]==){
mp[P(x1,y1)] = cnt++;
}
if(mp[P(x2,y2)]==){
mp[P(x2,y2)] = cnt++;
}
u = mp[P(x1,y1)], v = mp[P(x2,y2)];
G[u].push_back(edge{v,cost});
G[v].push_back(edge{u,cost});
Eg[i].cost = cost;
Eg[i].u = u;
Eg[i].v = v;
}
mis = INF;
V = cnt;
for(int i = ; i <= m; i++){
dijkstra(Eg[i].u,Eg[i].v);
mis = min(mis,d[Eg[i].v]+Eg[i].cost);
}
if(mis==INF){
printf("Case #%d: 0\n",cas++);
}else
printf("Case #%d: %d\n",cas++,mis);
}
return ;
}
hdu6005 Pandaland 想法+dijkstra的更多相关文章
- 【HDU 6005】Pandaland(Dijkstra)
Problem Description Mr. Panda lives in Pandaland. There are many cities in Pandaland. Each city can ...
- 最小环(floyd以及dijkstra实现+例题)
最小环定义 最小环是指在一个图中,有n个节点构成的边权和最小的环(n>=3). 一般来说,最小环分为有向图最小环和无向图最小环. 最小环算法: 直接暴力: 设\(u\)和\(v\)之间有一条边长 ...
- HDU 6005 Pandaland (Dijkstra)
题意:给定一个图,找出一个最小环. 析:暴力枚举每一条,然后把边设置为最大值,以后就不用改回来了,然后跑一遍最短路,跑 n 次就好. 代码如下: #pragma comment(linker, &qu ...
- 最短路径算法-Dijkstra算法的应用之单词转换(词梯问题)(转)
一,问题描述 在英文单词表中,有一些单词非常相似,它们可以通过只变换一个字符而得到另一个单词.比如:hive-->five:wine-->line:line-->nine:nine- ...
- (简单) POJ 1062 昂贵的聘礼,Dijkstra。
Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家 拿不出这么多金币,便请求酋长降 ...
- 图上最短路(Dijkstra, spfa)
单源最短路径 题目描述 如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度. 输入输出格式 输入格式: 第一行包含三个整数N.M.S,分别表示点的个数.有向边的个数.出发点的编号. 接下来 ...
- LOJ #2718. 「NOI2018」归程(Dijkstra + Kruskal重构树 + 倍增)
题意 给你一个无向图,其中每条边有两个值 \(l, a\) 代表一条边的长度和海拔. 其中有 \(q\) 次询问(强制在线),每次询问给你两个参数 \(v, p\) ,表示在 \(v\) 出发,能开车 ...
- dijkstra 的优先队列优化
既然要学习算法,就要学习到它的精髓,才能够使用起来得心应手. 我还是远远不够啊. 早就知道,dijkstra 算法可以用优先队列优化,我却一直不知道该怎样优化.当时,我的思路是这样的:假设有n个顶点, ...
- 隐式Dijkstra:在状态集合中用优先队列求前k小
这种技巧是挺久以前接触的了,最近又突然遇到几道新题,于是总结了一下体会. 这种算法适用的前提是,标题所述的"状态集合"大到不可枚举(否则枚举就行了qaq) ...
随机推荐
- Servlet3.0使用@WebServlet注解配置问题记录
文档说@WebServlet的配置属性都是可选的,不是必需的. 经实践,将一个Servlet配置成load-on-startup的Servlet时,若只添加loadOnStartup属性,该Servl ...
- ElasticSearch位置搜索
ElasticSearch位置搜索 学习了:https://blog.csdn.net/bingduanlbd/article/details/52253542 学习了:https://blog.cs ...
- 转: 学ppt的网址与素材
转:http://www.jianshu.com/p/89b261e0b8f6 你说你要学ppt,可你知道这些吗? 之前身边的同学总说做PPT很难,每次做ppt都头疼,我都对此很不屑,直到前一段开 ...
- MYSQL存储过程及事件
关于mysql下的存储过程以及事件的创建 以下这个存储过程主要实现的功能就是查询表里面半年前的数据,假设有就存到文件.然后将数据删除. CREATE DEFINER = `root`@`localho ...
- HDU 1253 胜利大逃亡 NYOJ 523【BFS】
胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- jshint错误
这条命令即可. npm install --save-dev jshint gulp-jshint
- PHP过滤器
这里介绍的过滤器包括: 1.filter_input 2.filter_input_array 3.filter_var 4.filter_var_array 5.filter_has_var 一.查 ...
- OJ刷题---简单password破解
题目要求: 输入代码: #include<iostream> #include <cstdio> #include <cstring> using namespac ...
- Oracle中sign/decode/nvl/round/trunc/(+)/instr/substr/replace解释
1. sign函数 sign函数语法: sign(n); sign函数说明: 取数字n的符号,大于0返回1,小于0返回-1,等于0返回0(n可以是表达式,(n-200)) 例子: a=10; b=50 ...
- 【Shiro】Apache Shiro架构之权限认证(Authorization)
Shiro系列文章: [Shiro]Apache Shiro架构之身份认证(Authentication) [Shiro]Apache Shiro架构之集成web [Shiro]Apache Shir ...