BNU 26480 Horror List【最短路】
链接:
Horror List
%lld Java class name:
Main
+
-
None
Graph Theory
2-SAT
Articulation/Bridge/Biconnected Component
Cycles/Topological Sorting/Strongly Connected Component
Shortest Path
Bellman Ford
Dijkstra/Floyd Warshall
Euler Trail/Circuit
Heavy-Light Decomposition
Minimum Spanning Tree
Stable Marriage Problem
Trees
Directed Minimum Spanning Tree
Flow/Matching
Graph Matching
Bipartite Matching
Hopcroft–Karp Bipartite Matching
Weighted Bipartite Matching/Hungarian Algorithm
Flow
Max Flow/Min Cut
Min Cost Max Flow
DFS-like
Backtracking with Pruning/Branch and Bound
Basic Recursion
IDA* Search
Parsing/Grammar
Breadth First Search/Depth First Search
Advanced Search Techniques
Binary Search/Bisection
Ternary Search
Geometry
Basic Geometry
Computational Geometry
Convex Hull
Pick's Theorem
Game Theory
Green Hackenbush/Colon Principle/Fusion Principle
Nim
Sprague-Grundy Number
Matrix
Gaussian Elimination
Matrix Exponentiation
Data Structures
Basic Data Structures
Binary Indexed Tree
Binary Search Tree
Hashing
Orthogonal Range Search
Range Minimum Query/Lowest Common Ancestor
Segment Tree/Interval Tree
Trie Tree
Sorting
Disjoint Set
String
Aho Corasick
Knuth-Morris-Pratt
Suffix Array/Suffix Tree
Math
Basic Math
Big Integer Arithmetic
Number Theory
Chinese Remainder Theorem
Extended Euclid
Inclusion/Exclusion
Modular Arithmetic
Combinatorics
Group Theory/Burnside's lemma
Counting
Probability/Expected Value
Others
Tricky
Hardest
Unusual
Brute Force
Implementation
Constructive Algorithms
Two Pointer
Bitmask
Beginner
Discrete Logarithm/Shank's Baby-step Giant-step Algorithm
Greedy
Divide and Conquer
Dynamic Programming
Tag it!
It was time for the 7th Nordic Cinema Popcorn Convention, and this year the manager Ian had a brilliant idea. In addition to the traditional film program, there would be a surprise room where a small group of people could stream a random movie from a large collection, while enjoying popcorn and martinis.
However, it turned out that some people were extremely disappointed, because they got to see movies like Ghosts of Mars, which instead caused them to tear out their hair in despair and horror.
To avoid this problem for the next convention, Ian has come up with a solution, but he needs your help to implement it. When the group enters the surprise room, they will type in a list of movies in a computer. This is the so-called horror list, which consists of bad movies that no one in the group would ever like to see. Of course, this list varies from group to group.
You also have access to the database Awesome Comparison of Movieswhich tells you which movies are directly similar to which. You can assume that movies that are similar to bad movies will be almost as bad. More specificly, we define the Horror index as follows:

Input
The first line of input contains three positive integers
N
,
H
,
L
(
1≤H<N≤1000,0≤L≤10000
), where
N
is the number of movies (represented by IDs, ranging from
0
to
N−1
),
H
is the number of movies on the horror list and
L
is the number of similarities in the database.
The second line contains
H
unique space-separated integers
xi
(
0≤xi
<
N
) denoting the ID of the movies on the horror list.
The following
L
lines contains two space-separated integers
ai
,
b
i
(
0≤ai
<
b
i
<
N
), denoting that movie with ID
ai
is similar to movie with ID
bi
(and vice verca).
Output
Output the ID of the best movie in the collection (highest Horror Index). In case of a tie, output the movie with the lowest ID.
Sample Input
6 3 5
0 5 2
0 1
1 2
4 5
3 5
0 2
Sample Output
1
Source
算法:最短路 =_= !
题意+思路:

根据上图中的公式,求出每个电影的恐怖值。。。
PS:最终你会发现,最恐怖的电影的价值应该是 0, 最不恐怖的反而尽量大。。。这一点很容易搞反。
第一行 HI = 0 :表示在恐怖表中的电影,恐怖值均为 0 ,而且不会被其他的关系定义覆盖。【相当于以这些电影为起点】
第二行 HI = Q+1:如果和当前电影类似的最恐怖的电影的恐怖值是 Q ,那么当前电影的 HI = Q+1
【相当于起点到当前电影的最小距离】
第三行 HI = INF :如果当前电影不和任何电影相似。【表示是孤立的点,最不恐怖的电影】
一般的大多是正常人,为了不把自己吓的抓狂,当然是选择不怎么恐怖的电影看了,这里为了尽量满足大多数人的需求,当然是选择最不恐怖的电影了。如果恐怖度一样,就选择编号最小的电影。
那么题目就转化成了求 HI 最大的,电影编号,如果有多个一样,则输出最小的。PS:如果有INF的,当然直接输出最小的编号就over了
相当于以恐怖名单上的电影编号为起点,d[index] = 0; 如果 index 出现在恐怖名单上【样例中的第二行】
然后每一个点【电影】为终点,求出起点集合到终点的最短距离。
最后输出最短距离中距离最大的那个。。。
不知道说清楚了没有,反正比赛的时候我是没有想明白的,完了听Orc 提别人说是最短路才反应过来。。。
code:
//PS:用邻接矩阵写的一个比较丑的代码,还是不习惯用邻接表写。。。等熟悉了再折腾吧
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std; const int maxnN = 1000+10;
const int maxnL = 10000+10;
const int INF = 9999999;
int n,h,L; int d[maxnN];
int w[maxnN][maxnN];
int vis[maxnN]; void Dijkstra()
{
memset(vis, 0, sizeof(vis));
for(int i = 0; i < n; i++)
{
int x , m = INF;
for(int y = 0; y < n; y++) if(!vis[y] && d[y] <= m) m = d[x=y];
if(m == INF) return; //如果存在孤立的点,不用继续判断
vis[x] = 1;
for(int y = 0; y < n; y++)
d[y] = min(d[y], d[x]+w[x][y]);
}
}
int main()
{
while(scanf("%d%d%d", &n,&h,&L) != EOF)
{
for(int i = 0; i < n; i++) d[i] = INF; //初始化每一条边,都没有相邻的 for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
w[i][j] = (i == j ? 0 : INF);
int x;
for(int i = 0; i < h; i++)
{
scanf("%d", &x);
d[x] = 0; //在恐怖表中的电影
} int a,b;
for(int i = 0; i < L; i++)
{
scanf("%d%d", &a,&b);
w[a][b] = 1; //双向图
w[b][a] = 1;
}
Dijkstra(); int Max = d[0]; //从第一个开始查找
int index = 0;
for(int i = 1; i < n; i++)
{
if(d[i] > Max)
{
Max = d[i];
index = i;
}
}
printf("%d\n", index);
//for(int i = 0; i < n; i++) printf("%d ", d[i]); printf("\n");
}
return 0;
}
BNU 26480 Horror List【最短路】的更多相关文章
- BNUOJ-26480 Horror List 最短路
题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=26480 题意:简单来说,就是给一个图,然后从每个honor list中的点求最短路.. 边 ...
- BNU 20950 ——沉重的货物 —————— · 最短路、最短边最大化」
沉重的货物 Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: %lld Java class name: ...
- bzoj1001--最大流转最短路
http://www.lydsy.com/JudgeOnline/problem.php?id=1001 思路:这应该算是经典的最大流求最小割吧.不过题目中n,m<=1000,用最大流会TLE, ...
- 【USACO 3.2】Sweet Butter(最短路)
题意 一个联通图里给定若干个点,求他们到某点距离之和的最小值. 题解 枚举到的某点,然后优先队列优化的dijkstra求最短路,把给定的点到其的最短路加起来,更新最小值.复杂度是\(O(NElogE) ...
- Sicily 1031: Campus (最短路)
这是一道典型的最短路问题,直接用Dijkstra算法便可求解,主要是需要考虑输入的点是不是在已给出的地图中,具体看代码 #include<bits/stdc++.h> #define MA ...
- 最短路(Floyd)
关于最短的先记下了 Floyd算法: 1.比较精简准确的关于Floyd思想的表达:从任意节点A到任意节点B的最短路径不外乎2种可能,1是直接从A到B,2是从A经过若干个节点X到B.所以,我们假设maz ...
- bzoj1266最短路+最小割
本来写了spfa wa了 看到网上有人写Floyd过了 表示不开心 ̄へ ̄ 改成Floyd试试... 还是wa ヾ(。`Д´。)原来是建图错了(样例怎么过的) 结果T了 于是把Floyd改回spfa 还 ...
- HDU2433 BFS最短路
Travel Time Limit: 10000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- 最短路(代码来源于kuangbin和百度)
最短路 最短路有多种算法,常见的有一下几种:Dijstra.Floyd.Bellman-Ford,其中Dijstra和Bellman-Ford还有优化:Dijstra可以用优先队列(或者堆)优化,Be ...
随机推荐
- mysql总是无故退出, InnoDB: mmap(68681728 bytes) failed; errno 12
最近发现mysql总是无故退出,(vim /var/log/mysqld.log)查看日志报下面错误: InnoDB: mmap(68681728 bytes) failed; errno 12 开启 ...
- [BZOJ4423][AMPPZ2013]Bytehattan(对偶图+并查集)
建出对偶图,删除一条边时将两边的格子连边.一条边两端连通当且仅当两边的格子不连通,直接并查集处理即可. #include<cstdio> #include<algorithm> ...
- 【最小割】【Dinic】HihoCoder - 1252 - The 2015 ACM-ICPC Asia Beijing Regional Contest - D - Kejin Game
题意:有一个技能学习表,是一个DAG,要想正常学习到技能x,要将指向x的技能全部先学到,然后会有一个正常花费cx.然后你还有一种方案,通过氪金dx直接获得技能x.你还可以通过一定的代价,切断一条边.问 ...
- bzoj 3573: [Hnoi2014]米特运输
3573: [Hnoi2014]米特运输 Description 米特是D星球上一种非常神秘的物质,蕴含着巨大的能量.在以米特为主要能源的D星上,这种米特能源的运输和储存一直是一个大问题. D星 ...
- 初涉springboot(一)
概述 1.了解springboot的作用 2.构建第一个springboot项目 一.springboot的作用 ① 原先在构建SSM项目的时候,可以感觉到,在一些不是很大的项目,构建配置文件的过程所 ...
- CentOS 6.9/7通过yum安装指定版本的PostgreSQL
PostgreSQL(10+) 一.安装PostgreSQL // 安装EPEL源 # wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel- ...
- Buck converter uses low-side PWM IC
The most common switching-power topology is a buck converter, which efficiently transforms high volt ...
- Spring自动扫描组件
通常情况下,声明所有的Bean类或组件的XML bean配置文件,这样Spring容器可以检测并注册Bean类或组件. 其实,Spring是能够自动扫描,检测和预定义的项目包并实例化bean,不再有繁 ...
- 跨域策略文件crossdomain.xml
Web站点通过crossdomain.xml文件(放于站点根目录)配置提供允许的域跨域访问本域内容的权限 以土豆的为例: <cross-domain-policy> <allow-a ...
- 嵌入式Linux开发
嵌入式Linux的开发和研究是Linux领域研究的一个热点,目前已开发成功的嵌入式系统有一半以上都是Linux.Linux到底有什么优势,使之取得如此辉煌的成绩呢?本文分为两大部分:Linux的优点. ...