poj 1161 最短路构图
题目链接:http://poj.org/problem?id=1161
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <iostream>
#include <cstring>
#include <queue>
#include <vector> #define maxn 400
#define INF 0x3f3f3f
#define min(a,b) (a>b?b:a)
using namespace std; int first[maxn][maxn];
int d[maxn][maxn];
vector<int> G[maxn];
int N,M,L;
int mem[]; void floyd(){
for(int k=;k<=M;k++)
for(int i=;i<=M;i++){
for(int j=;j<=M;j++){
d[i][j] = min(d[i][j],d[i][k]+d[k][j]);
}
}
}
int main()
{
scanf("%d%d%d",&M,&N,&L);
for(int i=;i<=L;i++){
scanf("%d",&mem[i]);
}
memset(first,,sizeof(first));
memset(d,0x3f,sizeof(d));
for(int i=;i<=M;i++){
int k,a,b,c;
scanf("%d%d",&k,&a);
G[a].push_back(i);
k--; b = a;
while(k--){
scanf("%d",&c);
G[c].push_back(i);
if(!first[b][c])
first[b][c] = first[c][b] = i;
else{
d[first[b][c]][i] = d[i][first[c][b]] = ; //复制粘贴的代码太可怕了
}
b = c;
}
if(!first[a][b])
first[a][b] = first[b][a] = i;
else{
d[first[a][b]][i] = d[i][first[a][b]] = ;
}
} for(int i=;i<=M;i++) d[i][i] = ;
floyd(); int ans = INF;
for(int i=;i<=M;i++){
int sum = ;
for(int j=;j<=L;j++){
int u = mem[j];
int mincross = INF;
for(int k=;k<G[u].size();k++){
int v = G[u][k];
mincross = min(mincross,d[v][i]);
}
sum += mincross;
}
ans = min(ans,sum);
}
printf("%d\n",ans);
}
反正是WA的很伤心啊!
poj 1161 最短路构图的更多相关文章
- POJ 1161 Walls(最短路+枚举)
POJ 1161 Walls(最短路+枚举) 题目背景 题目大意:题意是说有 n个小镇,他们两两之间可能存在一些墙(不是每两个都有),把整个二维平面分成多个区域,当然这些区域都是一些封闭的多边形(除了 ...
- Heavy Transportation POJ 1797 最短路变形
Heavy Transportation POJ 1797 最短路变形 题意 原题链接 题意大体就是说在一个地图上,有n个城市,编号从1 2 3 ... n,m条路,每条路都有相应的承重能力,然后让你 ...
- Floyd 求最短路(poj 1161)
Floyd-Warshall算法介绍: Floyd-Warshall算法的原理是动态规划. 设为从到的只以集合中的节点为中间节点的最短路径的长度. 若最短路径经过点k,则: 若最短路径不经过点k,则. ...
- poj 1847 最短路简单题,dijkstra
1.poj 1847 Tram 最短路 2.总结:用dijkstra做的,算出a到其它各个点要改向的次数.其它应该也可以. 题意: 有点难懂.n个结点,每个点可通向ki个相邻点,默认指向第一个 ...
- poj 1797(最短路变形)
题目链接:http://poj.org/problem?id=1797 思路:题目意思很简单,n个顶点,m条路,每条路上都有最大载重限制,问1->n最大载重量.其实就是一最短路的变形,定义wei ...
- poj 3013 最短路变形
http://poj.org/problem?id=3013 给出n个点,m个边.给出每个点的权值,每个边的权值.在m条边中选n-1条边使这n个点成为一棵树,root=1,求这棵树的最小费用,费用=树 ...
- poj 2449 k短路+A*算法
http://poj.org/problem?id=2449 K短路的定义: 1.如果起点终点相同,那么0并不是最短路,而是要出去一圈回来之后才是最短路,那么第K短路也是一样. 2.每个顶点和每条边都 ...
- poj 3653(最短路)
题目链接:http://poj.org/problem?id=3653 思路:题目意思很简单,就是二维平面上的图,要求起点到终点的最短路.建图略坑,需要坐标映射,化二维为一维.然后就是Dijkstra ...
- POJ 1161 Walls【floyd 以面为点建图】
题目链接:http://poj.org/problem?id=1161 题目大意: 1.给出m个区域,n个俱乐部点.接下来是n个俱乐部点以及各个区域由什么点围成.求一个区域到各个俱乐部点的距离之和最小 ...
随机推荐
- jdbc - 连接数据库的url
MySql: driver:com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/database_name SQL Server 2008: ...
- PHP 开发API接口 注册,登录,查询用户资料
服务端 <?php require 'conn.php'; header('Content-Type:text/html;charset=utf-8'); $action = $_GET['ac ...
- ios 键盘弹起
#pragma mark 键盘弹起操作 - (void)keyboardWillShow:(NSNotification *)notification{ NSDictionary *info = ...
- Ubuntu 12.04下解决Rhythmbox Music Player乱码问题
1.打开终端输入如下信息: $ sudo gedit ~/.profile 2.在打开的文档末尾加上如下两句: export GST_ID3_TAG_ENCODING=GBK:UTF-8:GB1803 ...
- qrcode-php生成二维码
调用PHP QR Code非常简单,如下代码即可生成一张内容为"http://www.baidu.com"的二维码. include 'phpqrcode.php'; QRcode ...
- 移动平台3G手机网站前端开发布局技巧汇总
移动平台3G手机网站前端开发布局技巧汇总 作者:前端开发-武方博 发布:2011-05-10 09:11 分类:移动开发 阅读:120,618 views 7条评论 您或许正在 ...
- javascript实现ajax
什么是 ajax ajax 即“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML),也就是无刷新数据读取. http 请求 首先需要了解 htt ...
- TRECT的使用
作为一张画布,在上面绘制各种图形或显示图像,但在CANVAS的使用过程中少不了一个特殊对象,那就是矩形RECT,灵活使用它会完成很多特殊的功能,为Delphi编制的Windows程序增加活力. REC ...
- iOS应用开发:什么是ARC?
iOS应用开发:什么是ARC? 博客分类: Phone / IOS / Objective-C / Swift ARC是什么 ARC是iOS 5推出的新功能,全称叫 ARC(Automatic R ...
- Java中传参的值传递和引用传递问题(转)
今天遇到了一个java程序,需要用参数来返回值(虽然最后用另一种方法实现了),在网上看到这样一篇文章,很受启发. 本文章来自于http://hi.baidu.com/xzhilie/blog/item ...