ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:40.03KB ,
资源ID:5946525      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5946525.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图论题.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

图论题.docx

1、图论题一拦截匪徒源程序名 catch.? (pas,c,cpp)可执行文件名 catch.exe输入文件名 catch.in输出文件名 catch.out运行时限 1s问题描述:某市的地图是一个由n个点组成的无向图,每个点代表一个区。现在第p区发生了抢劫案,而警察为了截住匪徒埋伏在一个匪徒必经的区域。由于不知道匪徒会向哪个区域逃窜,局长要求身为警察局电脑专家的你计算出对于任意一个匪徒可能逃向的区j,找出一个可以截住匪徒的区k,即匪徒从p区逃向j区,必经过k区。由于地区j可能为匪徒的老巢所在,所以局长希望在路上拦住匪徒,而不是在j区抓捕。输入格式:第一行为n,p(1pn100)。接下来为n*n的

2、矩阵A,Ai,j=1表示i区和j区有路相连,反之为0。输出格式:输出n-1行,按顺序从j=1,2,n依次输出对于每一个j,警察可以在哪些点埋伏。如有多个点,则要按照从小到大的顺序依次输出;如没有,则对应行输出“NO”。输入样例:5 10 1 1 0 01 0 1 1 01 1 0 0 00 1 0 0 10 0 0 1 0输出样例:NONO22 4二房间问题程序名称:castle.pas,c,c+输入文件:castle.in输出文件:castle.out问题描述:一座城堡被分成*个方块(m50,n50),每个方块可有04堵墙(0表示无墙)。下面示出了建筑平面图:图中的加粗黑线代表墙。几个连通的

3、方块组成房间,房间与房间之间一定是用黑线(墙)隔开的。现在要求你编一个程序,解决以下三个问题:1、该城堡中有多少个房间;2、最大的房间有多大;3、拆除城堡中的某一堵墙(城堡最外一圈的围墙不能拆),以形成一个尽可能大的房间。指出该墙。输入数据:平面图以数字形式存储在castle.in文件中,用一个数字表示一个方块。第一行一个整数m(m50),表示房子南北方向的长度。 第二行一个整数n(n50),表示房子东西方向的长度。后面的m行,每行有n个整数,每个整数都表示平面图对应位置的方块的特征。每个方块中墙的特征由数字P来描述(0P15)。数字P是下面的可能取的数字之和:1(西墙 west)2(北墙 n

4、orth)4(东墙 east)8(南墙 south)室内的墙被定义两次: 例如方块 (1, 1)中的南墙也被位于其南面的方块(2,1)定义了一次。建筑中至少有两个房间。输出数据:在输出文件castle.out中,第1行:一个整数,表示房间总数;第2行:一个整数,表示最大房间的面积(方块数);第3行:两个整数i、j(i和j是方格的坐标)和一个表示方向的字母D(D=W、N、E或S),表示应拆除哪个方格哪个方向上的一堵墙。只要求输出一个解。输入样例:4711 6 11 6 3 10 67 9 6 13 5 15 51 10 12 7 13 7 513 11 10 8 10 12 13输出样例:594

5、 1 E注释:下图中用虚黑线标出的就是去掉的墙。三程序文件 snow.PAS/C/CPP可执行文件 snow.EXE输入文件 snow.IN输出文件 snow.OUT时间限制 1S问题描述:随着白天越来越短夜晚越来越长,我们不得不考虑铲雪问题了。整个城市所有的道路都是双向一个车道,因为城市预算的削减,整个城市只有1辆铲雪车。铲雪车只能把它开过的地方(车道)的雪铲干净,无论哪儿有雪,铲雪车都得从停放的地方出发,游历整个城市的街道。现在的问题是:最少要花多少时间去铲掉所有道路上的雪呢?输入:输入数据的第1行表示铲雪车的停放坐标(x,y),x,y为整数,单位为米。下面最多有100行,每行给出了一条街

6、道的起点坐标和终点坐标,所有街道都是笔直的,且都是双向一个车道。铲雪车可以在任意交叉口、或任何街道的末尾任意转向,包括转U型弯。铲雪车铲雪时前进速度为20 km/h,不铲雪时前进速度为50 km/h。保证:铲雪车从起点一定可以到达任何街道。输出: 铲掉所有街道上的雪并且返回出发点的最短时间,精确到分种。输入样例:0 00 0 10000 100005000 -10000 5000 100005000 10000 10000 10000输出样例:3:55注解:3小时55分钟四单词游戏Io和Ao在玩一个单词游戏。他们轮流说出一个仅包含元音字母的单词,并且后一个单词的第一个字母必须与前一个单词的最后

7、一个字母一致。游戏可以从任何一个单词开始。任何单词禁止说两遍,游戏中只能使用给定词典中含有的单词。游戏的复杂度定义为游戏中所使用的单词的长度总和。编写程序求出使用一本给定的词典来玩这个游戏所能达到的游戏最大可能复杂度。输入 words.in输入文件的第一行包含一个自然数N,1N16,N表示一本字典中包含的单词数量。以下的每一行包含字典中的一个单词,每一个单词是由字母A、E、I、O和U组成的一个字符串,每个单词的长度将小于等于100,所有的单词是不一样的。输出 words.out输出文件仅有一行包含该游戏的最大可能复杂度。样例words.in5IOOIUUOAIOIOOIAOOIwords.ou

8、t16五删边问题(edges.pas)问题描述:连通图是指任意两个顶点都有路径可互相到达的图。读入一个无向的连通图,输出最多能删掉多少条边,使这个图仍然连通。输入文件(edges.in):第一行为图的顶点数N(1N100)和边数M,它们之间用一个空格隔开,图中的顶点用1到N的整数标号。接下来的M行,每行用两个数V1和V2表示一条边。V1与V2用一个空格隔开,表示这条边所连接的顶点的标号(V1V2),同一条边不会重复出现。输出文件 (edges.out):输出仅有一个整数,即最多能删掉的边数。样例:输入:4 61 21 31 42 32 43 4输出:3六相连的城市(city.pas)问题描述:

9、 n个城市中,某些城市间有道路互相连接。给出与每个城市相邻的城市有多少个,请输出城市间的邻接矩阵。输入文件(city.in): 第一行输入一个正整数n,表示城市的个数。第二行输入n个用空格隔开的非负整数,其中第i个数表示与城市i相邻的城市有多少个。输出文件(city.out): 输出满足输入数据的邻接矩阵。也就是说,你的输出应该一个关于对角线对称的N x N的01矩阵。输出的数需要用空格隔开。 如果没有满足条件的邻接矩阵,请输出“No Solution”。如果有多种可能的邻接矩阵,你可以任意输出一个。样例:输入:74 3 1 5 4 2 1输出(不唯一):0 1 0 1 1 0 11 0 0

10、1 1 0 00 0 0 1 0 0 01 1 1 0 1 1 01 1 0 1 0 1 00 0 0 1 1 0 01 0 0 0 0 0 0数据规模: 对于30%的数据,n=3; 对于50%的数据,n=30; 对于70%的数据,n=300;对于100%的数据,n=3000;七警察局(police.pas)问题描述:很久很久以前,国王拥有着Byteland的全部领土。Byteland由N个城市组成,而且某些城市有道路相连。不过,由于马车相向而行是非常危险的,所以道路都修成单向的。有一天,国王决定在Byteland的若干不同城市设置警察局。不过由于经济原因,国王只能建立K个警察局。当然了,国王

11、建立的警察局必须符合如下条件: 除非某城市已经建立了警察局,从每个城市出发,都能达到某个有警察局的城市。 任意城市一旦发生危险,总有警察局能够派出人员到达那个城市。国王想知道一共有多少种不同的方案。输入文件(police.in):第一行N(1= N = 100)、M(1 = M = 20000)和K(1 = k = n),代表了城市的个数、道路的个数以及建设的警察局数。以后M行,每行两个整数i、j,表示有一条从i城市到j城市的道路。输出文件(police.out):输出一行,为建立K个警察局的不同方案数。样例:输入:6 7 31 22 33 13 44 55 66 5输出:15八、Cow Hu

12、rdles(hurdles.pas)农场主John要为他的母牛参加跳跃比赛做一些准备工作,因此Bessie和它的伙伴在练习跳过障碍物。它们感到很累,因此,他们想用最少的体力跳过障碍物。很明显, 对母牛来讲跳过几个很短的障碍物不是什么很困难的事,如果是一个高的障碍物那就有点困难了。因此,母牛们仅仅关心他们要跳的最高的障碍物的高度。母牛们练习的房间有N(1 = N = 300)个位置,很方便地标记为1.N。M条单行道连接着各个位置,这些单行道标记为1.M。第i条单行道表示从位置S_i到E_i且路上有一个高度为H_i (1 = H_i = 1,000,000)的障碍物。母牛们必须跳过所有通过的道路上

13、的障碍物。母牛们有T(1 = T = 40,000)个任务必须完成。任务i包含两个不同的数,A_i和B_i (1 = A_i = N; 1 = B_i = N),这意味着母牛们必须从位置A_i到B_i(通过一条或多条路)。母牛们想要找到从A_i到B_i所通过的一条路径,要求所跳过的最高障碍物的高度值最小。请你写个程序帮助母牛们求出跳过的最高障碍物的最小高度值。程序名: hurdles输入格式:第一行:三个用空格隔开的整数N, M和T第2.M+1行:第i+1行有三个用空格隔开的整数S_i,E_i和H_i第M+2.M+T+1行:第i+M+1行每行有两个用空格隔开的表示任务i的整数A_i和B_i 样

14、例输入(hurdles.in):5 6 31 2 123 2 81 3 52 5 33 4 42 4 83 41 25 1输出格式:第1.T行:第i行是任务i的结果(两位置之间最高障碍物的最小值)。如果两位置之间无通路则输出-1。样例输出 (hurdles.out):48-1九、挖水井农夫约翰决定给他的N(1=N=300)个牧场浇水,这些牧场被自然的命名为1.N。他可以给一个牧场引入水通过在这个牧场挖一口井或者修一条管道使这个牧场和一个已经有水的牧场连接。 在牧场i挖一口井的花费是w_i(1=w_i=100000)。修建一条水管连接牧场i和牧场j的花费是p_ij(1=p_ij=100000;p

15、_ij=p_ji;p_ii=0)。 请确定农夫约翰为了完成浇灌所有的牧场所需的最小的总花费。 分数:400 题目名称:water 输入格式: 第1行:一个单独的整数n。 第2.n+1行:第i+1行包含一个单独的整数w_i。 第n+2.2n+1行:第n+1+i行包含n个用空可分开的整数;其中第j个数是p_ij。 输入样例(water.in): 454430 2 2 22 0 3 32 3 0 42 3 4 0输入说明: 这里有4个牧场,修井和修管道的代价如图。 输出格式: 第1行:一个单独的整数,表示花费。 输出样例(water.out): 9输出说明: 农夫约翰可以在第4个牧场修井,并且将每个

16、牧场和第一个连接起来,这样,花费是3+2+2+2=9。 十、最小花费(money.?)问题描述 在n个人中,某些人的银行账号之间可以互相转账。这些人之间转账的手续费各不相同。给定这些人之间转账时需要从转账金额里扣除百分之几的手续费,请问A最少需要多少钱使得转账后B收到100元。输入数据 第一行输入两个正整数n,m,分别表示总人数和可以互相转账的人的对数。 以下m行每行输入三个正整数x,y,z,表示标号为x的人和标号为y的人之间互相转账需要扣除z%的手续费 (z100)。 最后一行输入两个正整数A,B。数据保证A与B之间可以直接或间接地转账。输出数据 输出A使得B到账100元最少需要的总费用。精

17、确到小数点后8位。输入样例3 31 2 12 3 21 3 31 3输出样例103.07153164时间限制 各测试点1秒内存限制 你的程序将被分配40MB的运行空间数据规模 1=n=2000十一、架设电话线(phoneline.pas) Farmer John打算将电话线引到自己的农场,但电信公司并不打算为他提供免费服务。于是,FJ必须为此向电信公司支付一定的费用。 FJ的农场周围分布着N(1 = N = 1,000)根按1.N顺次编号的废弃的电话线杆,任意两根电话线杆间都没有电话线相连。一共P(1 = P = 10,000)对电话线杆间可以拉电话线,其余的那些由于隔得太远而无法被连接。 第

18、i对电话线杆的两个端点分别为A_i、B_i,它们间的距离为L_i (1 = L_i = 1,000,000)。数据中保证每对A_i,B_i最多只出现1次。编号为1的电话线杆已经接入了全国的电话网络,整个农场的电话线全都连到了编号为N的电话线杆上。也就是说,FJ的任务仅仅是找一条将1号和N号电话线杆连起来的路径,其余的电话线杆并不一定要连入电话网络。 经过谈判,电信公司最终同意免费为FJ连结K(0 = K N)对由FJ指定的电话线杆。对于此外的那些电话线,FJ需要为它们付的费用,等于其中最长的电话线的长度(每根电话线仅连结一对电话线杆)。如果需要连结的电话线杆不超过K对,那么FJ的总支出为0。

19、请你计算一下,FJ最少需要在电话线上花多少钱。程序名 phoneline输入格式 第1行 3个用空格隔开的整数:N,P,以及K 第2.P+1行 第i+1行为3个用空格隔开的整数:A_i,B_i,L_i输入样例 (phoneline.in)5 7 11 2 53 1 42 4 83 2 35 2 93 4 74 5 6输入说明 一共有5根废弃的电话线杆。电话线杆1不能直接与电话线杆4、5相连。电话线杆5不能直接与电话线杆1、3相连。其余所有电话线杆间均可拉电话线。电信公司可以免费为FJ连结一对电话线杆。输出格式 第1行 输出1个整数,为FJ在这项工程上的最小支出。如果任务不可能完成, 输出-1输

20、出样例 (phoneline.out)4输出说明 FJ选择如下的连结方案:1-3;3-2;2-5,这3对电话线杆间需要的电话线的长度分别为4、3、9。FJ让电信公司提供那条长度为9的电话线,于是,他所需要购买的电话线的最大长度为4。十二、恶魔城(SATANIC.PAS)问题描述:上帝需要创造一位战士去消灭撒旦,这位战士必须要穿过恶魔城才能与撒旦决斗。恶魔城内有M条连接N个路口(从1到N编号)的街道,每一条街道都是单向的(也就是说你不能逆着该街道指定的方向走),并且在城内无论怎么走都不可能走回原来走过的地方。开始的时候,战士的生命力(HP)为INITHP、站在号路口,而撒旦在第N号路口等待着他。

21、每一条街道上都有许多魔鬼,但是也有一些街道已经被上帝派去的天使占领了。当战士经过连接i号向j号路口的街道时,如果占领该街道的是恶魔,那么他的HP先加倍然后减少Li,j,我们记为Ai,j=-Li,j;如果占领该街道的是天使,那么他的HP就会先加倍然后增加Li,j,我们记为Ai,j=+Li,j;如果该街道不存在,那么Ai,j=0。如果某一时刻战士的HP=0,那么他会死亡。因为这个战士将非常无敌,当他见到撒旦的时候只要还活着,就能一口气把撒旦消灭,所以上帝不希望让他的INITHP过高。任务:给定N,A1.N,1.N,求最小的INITHP,使这个战士能够活着见到撒旦。输入格式:从文件SATANIC.I

22、N读入数据,文件第一行有一个正整数N(3 N 100),下面跟着的第i行第j个数为Ai,j(绝对值不超过10000的整数)。输出格式:输出所求最小的INITHP。样例SATANIC.inSATANIC.out40 -4 0 100 0 +3 00 0 0 140 0 0 04十三、路障源程序名 block.?(pas|c|cpp)输入文件名 block.in输出文件名 block.out- 问题描述Bessie 来到一个小农场,有时她想回老家看看她的一位好友。她不想太早地回到老家,因为她喜欢途中的美丽风景。她决定选择次短路径,而不是最短路径。农村有 R (1 = R = 100,000) 条双

23、向的路,每条路连接 N (1 = N = 5000) 个结点中的两个。结点的编号是 1.N。Bessie 从结点 1出发,她的朋友(目的地)在结点 N。次短路径可以使用最短路径上的路,而且允许退回,即到达一个结点超过一次。次短路径是一种长度大于最短路径的路径(如果存在两条或多条最短路径存在,次短路径就是比它们长,且不比其他任何的路径长的路径)。- 输入数据* Line 1: 两个用空格分隔的整数 N 和 R* Lines 2.R+1: 每行包含三个用空格分隔的整数: A, B, 和 D表示有一条路连接结点A和B,长度为D (1 = D = 5000)。- 输出数据* Line 1: 结点 1

24、到结点 N的次短路径长度。- 样例输入4 41 2 1002 4 2002 3 2503 4 100- 样例输出450十四、Danger(danger.pas)【问题描述】天凯是苏联的总书记。苏联有n个城市,某些城市之间修筑了公路。任意两个城市都可以通过公路直接或者间接到达。天凯发现有些公路被毁坏之后会造成某两个城市之间无法互相通过公路到达。这样的公路就被称为dangerous pavement。为了防止美帝国对dangerous pavement进行轰炸,造成某些城市的地面运输中断,天凯决定在所有的dangerous pavement驻扎重兵。可是到底哪些是dangerous pavement呢?你的任务就是找出所有这样的公路。【输入格式】第一行n,m(1=n=150, 1=m=5000),分别表示有n个城市,总共m条公路。以下m行每行两个整数a, b,表示城市a和城市b之间修筑了直接的公路。【输出格式】输出有若干行。每行包含两个数字a,b(ab),表示是dangerous pavement。请注意:输出时,所有的数对必须按照a从小到大排序输出;如果a相同,则根据b从小到大排序。【输入样例】Danger.in6 61 22 32 43 54 55 6【输出样例】Danger.out1 25 6

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1