码迷,mamicode.com
首页 > 其他好文 > 详细

【赛事】图论大赛

时间:2016-07-30 22:29:54      阅读:316      评论:0      收藏:0      [点我收藏+]

标签:

敌人

【试题描述】

俗话说得好,敌人的敌人就是朋友。

现在有n个人,编号1至n,初始互不相识。接下来有m个操作,操作分为两种:

(1)检查x号和y号是否是朋友,若不是,则变成敌人
(2)询问x号的朋友有多少个
请你针对每个操作中的询问给出回答。

 

【输入要求】

第一行两个正整数n、m,表示人的数量和操作的数量。
接下来m行,依次描述输入。每行的第一个整数为1或2表示操作种类。对于操作(1),随后有两个正整数x,y。对于操作(2),随后一个正整数x。

 

【输出要求】

输出包含m行,对于操作(1),输入‘N‘或"Y",‘N‘表示x和y之前不是朋友,‘Y‘表示是朋友。对于操作(2),输出x的朋友数量。

 

【输入实例】

5 8
1 1 2
1 1 3
1 2 3
2 3
1 4 5
2 3
1 1 4
2 3

  

【输出实例】

N
N
Y
1
N
1
N
2

  

【其他说明】

n,m<=300000。
对于80%的数据,不包含操作2。

 

 

国际象棋

【试题描述】

给定一个n*n的棋盘,有一匹马放在左上角(1, 1)处,现在要让这匹马跳到(n, n)处。特别地,棋盘中有些位置有障碍,这些位置是不能经过的。问最少需要几步。

 

【输入要求】

第一行包含两个正整数n、m,表示棋盘大小和障碍数量。
随后m行,每行两个正整数,表示障碍的位置。

 

【输出要求】

仅一个正整数,表示最少的步数。

 

【输入实例】

3 1
2 2

 

【输出实例】

4

 

【其他说明】

n<=1000,m<=1000000。

 

地铁网络

【试题描述】

    B市共有q条地铁线路,每条地铁都会经过一些站点。某些站点只被一条地铁线路经过,称作普通站,而某些站点被多条地铁经过,称作换乘站。
    无论是普通站还是换乘站,都可以在二维地图上表示为一个点(x, y),即横、纵坐标。地铁在地下是走直线的,即一条线路中相邻两个站点的距离是两个站点的直线距离。
    B市的地铁是按照距离收费的。地铁行驶的距离不超过2000(包含,下同),收3元;行驶距离超过2000但不超过4000,收4元;行驶距离超过4000但不超过6000,收5元,之后依此类推。
    现在,你在地铁网路的某个站点,你希望知道你花恰好k元到达的站点有哪些。

 

【输入要求】

输入数据第一行包含一个正整数n,表示地铁站的数量。
随后n行,每行包含一个小写字母构成的字符串s和两个正整数x、y,分别表示地铁站的名称和横纵坐标。不会有重名的地铁站。
接下来包含q行,每行包含1个正整数m,表示这条地铁线路包含的地铁站数量。随后m个字符串,用空格隔开,依次表示这条地铁线路经过的地铁站名称。
最后一行包含一个正整数k和一个字符串s,表示希望花的钱数和你所在的地铁站。

 

【输出要求】

    仅一行,用空格隔开的若干个字符串,依次表示可以花k元到达的地铁站名称。需要按照字典序输出。

 

【输入实例】

5
xizhimen 10000 10000
dongwuyuan 0 10000
pinganli 10000 0
dazhongsi 10000 20000
wudaokou 10000 30000
2
3 xizhimen dazhongsi wudaokou
3 dongwuyuan xizhimen pinganli
7 xizhimen

  

【输出实例】

dazhongsi dongwuyuan pinganli

  

【其他说明】

q,m<=500, n<=q*m, |s|<=15, k<=3000, 0<=x, y<=100000
数据保证从任何两个地铁站是可以互达的。

 

 

思考题:传送门

【试题描述】

    现有一个n行m列的模板矩阵,左上角称作第0行第0列,右下角称作第n-1行第m-1列。每个位置可能是障碍‘#‘,空地‘.‘或传送门‘T‘。每行只会有0个或2个传送门,若为两个传送门,则可以通过1个单位时间从其中一个到达另一个。非障碍可以通往相邻的非障碍(四连通),移动1步需要花费1个单位时间。
    然而,实际空间是一个无限行m列的矩阵,实际空间中的第i行与模板矩阵中的第i%n行是相同的。现在,询问你实际空间中第X1行Y1列到第X2行第Y2列最少需要花费多少个单位时间。

 

【输入要求】

输入前n行每行包含m个字符用来描述模板矩阵。
随后包含4个整数X1, Y1, X2, Y2描述起点和终点。

 

【输出要求】

只一行,一个数,表示至少需要多少个单位时间。

 

【输入实例】

##.#.
.#T#T
...#.
##.#.
7
4
1
0

 

 

【输出实例】

9

  

【其他说明】

n, m, Y1, Y2<=20,
|X1|, |X2| <= 10^15。

 

-------------------------------------------------------------------------------------------------------------------------

为大家提供了所有的测试数据,可以供大家来查看代码,将数据的txt文档用dev c++打开才可以看到全部内容。

链接: https://pan.baidu.com/s/1o7HYrZc

密码: ma2z

欢迎大家下载

【赛事】图论大赛

标签:

原文地址:http://www.cnblogs.com/wxjor/p/5721793.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!