1、最短路径问题Description:平面上有n个点(n100),每个点的坐标均在-10000到10000之间其中的一些点之间有连线若有连线,则表示可从一个点到达另一个点,即两点间有通路,通路的距离为两点间的直线距离现在的任务是找出从一点到另一点之间的最短路径Input:共n+m+3行第一行为整数n 第行到第n行,每行两个整数x和y,描述了一个点的坐标(以一个空格分开)第n行为一个整数m,表示图中连线的个数 以后的m行,每行描述一条连线,由两个整数i和j组成,表示第i个点和第j个点之间有连线 最后一行;两个整数s和t,分别表示源点和目标点Output:仅一行,一个实数(保留两位小数),表示从s到
2、t的最短路径长度Sample Input 50 02 02 20 23 151 21 31 42 53 51 5Sample Output:3.41最小花费【问题描述】:在n个人中,某些人的银行账号之间可以互相转账。这些人之间转账的手续费各不相同。给定这些人之间转账时需要从转账金额里扣除百分之几的手续费,请问A最少需要多少钱使得转账后B收到100元。【输入数据】:第一行输入两个正整数n,m,分别表示总人数和可以互相转账的人的对数。以下m行每行输入三个正整数x,y,z,表示标号为x的人和标号为y的人之间互相转账需要扣除z%的手续费 (z100)。最后一行输入两个正整数A,B。数据保证A与B之间可
3、以直接或间接地转账。【输出数据】:输出A使得B到账100元最少需要的总费用。精确到小数点后8位。【输入样例】:3 31 2 12 3 21 3 31 3【输出样例】:103.07153164【数据规模】: 1=n=2000公园漫步(park.pas)【问题描述】小M 和小Z 饭后在公园散步,走着走着小Z 忽然想起来家中的水龙头没有关,于是他们要在最快的时间内走出公园赶到家中。为了简化问题的描述,我们把公园的景点用数字标号(从1 到N-1),在两个景点中之间会有道路连接,并且小M 和小Z 是好市民,他们不会穿越公园的草坪,只会沿着公园的小路行走。小Z想知道从他们当前所处的位置S 到公园的出口(标
4、号为N)所需要的最短时间。【输入格式】输入文件的第一行3 个正整数,N、K、T 并且用空格隔开,分别表示公园景点数目、公园小路条数,以及他们当前所处的景点编号。接下来K 行,每行三个整数,表示小路连接的两个景点的编号以及走过这条小路所需要的时间。【输出格式】一个整数,表示他们走出公园所需要的最短时间。【输入样例】3 2 11 2 32 3 4【输出样例】7【数据规模和约定】对于60%的数据,保证N=1000,M=10000。对于100%的数据,保证N=10000,M=100000。对于 100%的数据,保证结果在 231 内NETBAR【问题背景】 绵阳中学以人数众多闻名。三个年级共有 100
5、00 多人,学生多了附近的网吧也多。 Mzoiers 都热衷于 Dota,可学校的机子配置相当差(评测服务器除外),根本不能玩,那就只有去网吧。星期天到星期五都是晚上 10:20 才下晚自习,几乎没时间玩。然而星期六下午放假是绝好的时间,但是学校人多啊,一放学去网吧的人就开始狂奔,竞争之激烈,抢到机子的难度非常之大。往往在我们到达网吧之前都坐满了。 学校到网吧的路是错综复杂的,以致于到一个自己想去的网吧都有非常多的路线可以选择,而路线的长度又不相同,这样就决定了要花费的时间,因此想要尽快到达,选择一条最佳的路线是很有必要的。 【问题描述】 为了简化问题,我们把学校与周边的网吧看做图中的顶点,学
6、校与网吧,网吧与网吧之间的路线看做边,每个边都有一个权,表示我们走完这条路的时间,由于放学人流量大,如果反向走会有危险,因此这是一个有向图。 我的学校在 S 点,想要去的网吧在 T 点。你的任务就是选择一条最佳路线,使得从学校到目的地网吧的时间最短,你只需要输出最短到达时间即可。 Input 输入文件中共有 M+2 行数据,第一行两个整数 N,M,表示点数和边数; 然后 M 行每行 3 个正整数(u,v,t),表示有一条可由 u 到 v 耗时为 t 的边; 最后一行两个正整数 S,T。Output 输出文件只有一行,一个整数表示最短时间,如果 S,T 之间不存在通路则输出“No Solutio
7、n!”(双引号不输出,“!“为西文标点)。 Sample Input 4 41 2 32 4 101 3 53 4 51 4Sample Output 10【数据规模】 对于 30%的数据保证有 1=N=1000,1=M=1000; 对于全部的数据保证有 1 N=10000,1=M=100000。题 Sweet Butter 香甜的黄油 描述 农夫 John 发现做出全威斯康辛州最甜的黄油的方法:糖。把糖放在一片牧场上,他知道N(1=N=500 )只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油。当然,他将付出额外的费用在奶牛上。 农夫 John 很狡猾。像以前的巴甫洛夫,他知道他可以训练这
8、些奶牛,让它们在听到铃声时去一个特定的牧场。他打算将糖放在那里然后下午发出铃声,以至他可以在晚上挤奶。 农夫 John 知道每只奶牛都在各自喜欢的牧场(一个牧场不一定只有一头牛) 。给出各头牛在的牧场和牧场间的路线,找出使所有牛到达的路程和最短的牧场(他将把糖放在那) 格式 PROGRAM NAME : butter INPUT FORMAT : (file butter.in) 第一行: 三个数:奶牛数 N,牧场数 P(2=P=800) ,牧场间道路数 C(1=C=1450) 第二行到第 N+1 行: 1 到 N 头奶牛所在的牧场号 第 N+2 行到第 N+C+1 行: 每行有三个数:相连的牧场 A、B,两牧场间距离D(1=D=255 ) ,当然,连接是双向的 OUTPUT FORMAT : (file butter.out) 一行 输出奶牛必须行走的最小的距离和 SAMPLE INPUT 3 4 52341 2 11 3 52 3 72 4 33 4 5