随笔分类 -  图论

摘要:Paintball这个题可以看作是图上有很多圆形禁区,如果直接考虑是否可以从左边走到右边似乎有些无从下手,其实可以这样考虑,把整个方形区域看作水面,把禁区看作小岛,如果可以从上边沿着这些小岛走到下边的话,就说明方形区域被禁区整个隔断了,那么就不能从左边走到右边,这样一... 阅读全文
posted @ 2018-08-29 00:32 ACLJW 阅读(213) 评论(0) 推荐(0)
摘要:Patrol Robot这个题还是DFS,不过每个状态除了记录位置之外,还要记录剩余穿越次数,这样一来就变成了三维DFS。对于值为1的点如果剩余穿越次数大于0且该状态未遍历过的话也可以访问。像这种四个方向的话用常量数组比较方便,没必要搞个二重循环,容易出bug。#in... 阅读全文
posted @ 2018-08-10 00:57 ACLJW 阅读(178) 评论(0) 推荐(0)
摘要:Knight MovesBFS即可,字符串数组 size 定义成了 2 导致输入一直错误,应该是无法存入'\0' 引起的,待会儿再深究。#includeusing namespace std;const int maxn = 8;typedef pair P;int ... 阅读全文
posted @ 2018-08-09 23:10 ACLJW 阅读(138) 评论(0) 推荐(0)
摘要:Undraw the Trees这题没啥说的,利用DFS进行先序遍历即可,注意 node 可以不是字母,然后 puts() 默认换行的,太久没用都忘了。。#includeusing namespace std;const int maxn = 200 + 5;int ... 阅读全文
posted @ 2018-08-06 23:37 ACLJW 阅读(128) 评论(0) 推荐(0)
摘要:Ordering Tasks这题比较简单,就是拓扑排序,而且肯定是有向无环图,直接DFS即可。注意数据读取,只要 n 和 m 有一个不为0即可。。。不考虑是否存在环:#includeusing namespace std;const int maxn = 100 + ... 阅读全文
posted @ 2018-08-05 00:29 ACLJW 阅读(96) 评论(0) 推荐(0)
摘要:Abbott's Revenge一些细节要特别注意#includeusing namespace std;const int maxn = 10;const char* dirs = "NESW";const char* turns = "FLR";struct No... 阅读全文
posted @ 2018-07-31 23:39 ACLJW 阅读(116) 评论(0) 推荐(0)
摘要:Ancient Messages数一数就能发现,题目表中的6个符号从左到右依次有1,3,5,4,0,2个洞,各不相同。这样,只需要数一数输入的符号有几个“白洞”,就能准确地知道它是哪个符号了。至于具体实现,我的思路是:先确定一个符号,找到该符号的空洞个数然后将该符号“... 阅读全文
posted @ 2018-06-02 23:53 ACLJW 阅读(177) 评论(0) 推荐(0)
摘要:Oil Deposits#includeusing namespace std;const int maxn = 100 + 5;int m,n,cnt;char graph[maxn][maxn];void dfs(int x,int y){ graph[x]... 阅读全文
posted @ 2018-06-01 12:59 ACLJW 阅读(111) 评论(0) 推荐(0)
摘要:08-图9 关键活动(30 point(s))假定一个工程项目由一组子任务构成,子任务之间有的可以并行执行,有的必须在完成了其它一些子任务后才能执行。“任务调度”包括一组子任务、以及每个子任务可以执行所依赖的子任务集。比如完成一个专业的所有课程学习和毕业设计可以看成一... 阅读全文
posted @ 2018-02-02 21:53 ACLJW 阅读(365) 评论(0) 推荐(0)
摘要:7-12 How Long Does It Take(25 分)Given the relations of all the activities of a project, you are supposed to find the earliest completi... 阅读全文
posted @ 2017-12-23 11:06 ACLJW 阅读(194) 评论(0) 推荐(0)
摘要:08-图7 公路村村通(30 分) 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。输入格式: 输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路... 阅读全文
posted @ 2017-12-20 12:33 ACLJW 阅读(176) 评论(0) 推荐(0)
摘要:07-图6 旅游规划(25 分) 有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。输入格式:... 阅读全文
posted @ 2017-12-19 19:06 ACLJW 阅读(240) 评论(0) 推荐(0)
摘要:07-图5 Saving James Bond - Hard Version(30 分) This time let us consider the situation in the movie “Live and Let Die” in which Jam... 阅读全文
posted @ 2017-12-18 09:40 ACLJW 阅读(186) 评论(0) 推荐(0)
摘要:07-图4 哈利·波特的考试(25 分) 哈利·波特要考试了,他需要你的帮助。这门课学的是用魔咒将一种动物变成另一种动物的本事。例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等。反方向变化的魔咒就是简单地将原来的魔咒倒过来念,例如ahah可... 阅读全文
posted @ 2017-12-16 18:58 ACLJW 阅读(159) 评论(0) 推荐(0)
摘要:06-图3 六度空间(30 分) “六度空间”理论又称作“六度分隔(Six Degrees of Separation)”理论。这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过五个人你就能够认识任何一个陌生人。”如图1所示。 图1 六度空间示意图 “六度空 阅读全文
posted @ 2017-12-16 17:54 ACLJW 阅读(175) 评论(0) 推荐(0)
摘要:06-图2 Saving James Bond - Easy Version(25 分) This time let us consider the situation in the movie “Live and Let Die” in which Jam... 阅读全文
posted @ 2017-12-15 22:11 ACLJW 阅读(121) 评论(0) 推荐(0)
摘要:06-图1 列出连通集(25 分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。输入格式:输入第1行给出2个整数N(0#in... 阅读全文
posted @ 2017-11-17 14:31 ACLJW 阅读(102) 评论(0) 推荐(0)