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个俱乐部点以及各个区域由什么点围成.求一个区域到各个俱乐部点的距离之和最小 ...
随机推荐
- linux,安装软件报错cannot create regular file '/usr/local/man/man1': No such file or directory
make install时报错,如下 install: cannot create regular file '/usr/local/man/man1': No such file or direct ...
- mksquash_lzma-3.2 编译调试记录
今天在编译mksquash_lzma-3.2的时候出现了如下问题: /home/test/RT288x_SDK/toolchain/mksquash_lzma-3.2/lzma443/C/7zip/C ...
- oracle-行转列
<一>合并两个结果集,并且两个结果集的数据 根据条目自动归为一行结果集1 如下:SQL> select t1.fplx,t1.djje from yw_zjfpjl t1 ; FP ...
- Proxy 模式
在以下集中情况下可以用 Proxy模式解决问题: 1)创建开销大的对象时候,比如显示一幅大的图片,我们将这个创建的过程交给代理去完成,GoF 称之为虚代理(Virtual Proxy): 2)为网络上 ...
- 使用Eclipse搭建C/C++开发环境(转)
使用Eclipse搭建C/C++开发环境 文章出自:http://www.cnblogs.com/liuxianan/archive/2013/01/15/2861196.html 说明:网上有很多 ...
- nodebb在阿里云主机部署过程
1.在centos上安装nodejswget http://nodejs.org/dist/v0.8.9/node-v0.8.9.tar.gztar zxvf node-v0.8.9.tar.gzcd ...
- shell排序算法
今天看<The C Programming Language>的时候看到了shell排序算法, /* shellsort: sort v[0]...v[n-1] into increasi ...
- 单例模式——使用GCD实现单例模式 & 非ARC单例模式 &使用GCD和线程锁实现单例模式-b
1.单利模式概述 链接: iOS开发懒汉模式&恶寒模式 2.使用GCD实现单利模式 2.1新建一个project,然后新建一个HMDataTool类展示GCD实现单例模式 #import & ...
- 工作总结:VS2010/MFC编程入门之十六(对话框:消息对话框)
原文地址:http://www.jizhuomi.com/software/171.html 我们在使用Windows系统的过程中经常会见到消息对话框,提示我们有异常发生或提出询问等.因为在软件开发中 ...
- (org.hibernate.LazyInitializationException:19) - could not initialize proxy错误
(org.hibernate.LazyInitializationException:19) - could not initialize proxy错误 在刚插入数据后,马上使用dao进行query ...