1.设有一个n ∗ n 的棋盘( n < 6) ,在棋盘上的任一点A ( x , y ) 有一个中国象棋的马,按马走日字的规则,试找出一条路径,使马不重复地走遍棋盘上的每一个点.
2.一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n×n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行。同时当Extense处在某个格点时,他只能移动到东南西北(或者说上下左右)四个方向之一的相邻格点上,Extense想要从点A走到点B,问在不走出迷宫的情况下能不能办到。如果起点或者终点有一个不能通行(为#),则看成无法办到。
3.已知有n本书(从1~n编号)和n个人(从1~n编号),每个人都有一个自己喜爱的书的列表,现在请你编写一个程序,设计一种分书方案,使得每个人都能获得一本书,且这本书一定要在他的喜爱列表中。
4.当你站在一个迷宫里的时候,往往会被错综复杂的道路弄得失去方向感,如果你能得到迷宫地图,事情就会变得非常简单。
假设你已经得到了一个n*m的迷宫的图纸,请你找出从起点到出口的最短路。
5.给出n个正整数,选出k个数,使它们的和为s。
n【输出】
6.子集和问题的一个实例为〈S,t〉。其中,S={ x1, x2,…, xn}是一个正整数的集合,c是一个正整数。子集和问题判定是否存在S的一个子集S1,使得子集S1和等于c。
【编程任务】
对于给定的正整数的集合S={ x1, x2,…, xn}和正整数c,编程计算S 的一个子集S1,使得子集S1和等于c。
7.有一个n * m大小的迷宫。其中字符’S’表示起点,字符’D’表示出口,字符’#’表示墙壁,字符’.'表示平地。你需要从’S’走到‘D’,每次只能向上下左右相邻的位置移动,并且不能走出地图,也不能走进墙壁
每次移动消耗1时间,走过路都会塌陷,因此不能走回头路或原地不动。现在已知出口的大门会在T时间打开,判断在0时间从起点出发能否逃离迷宫。
数据范围n,m <= 10, T <= 50
8.【问题描述】
原始部落byteland中的居民们为了争夺有限的资源,经常发生冲突。几乎每个居民都有他的仇敌。部落酋长为了组织一支保卫部落的队伍,希望从部落的居民中选出最多的居民入伍,并保证队伍中任何2 个人都不是仇敌。
【编程任务】
给定byteland部落中居民间的仇敌关系,编程计算组成部落卫队的最佳方案。
9.输入n个数组,将其顺序输出。
10.输入n个数,要求程序按输入时的逆序把这n个数输出,已知整数不超过100个。
保证每个数不大于32767。
11.给你一个数列,保证数列中的每个数是不同的。现在要求你删除这个数列中值为x的元素,保证数列中的数的顺序是不变的。
12.给你一个数列,保证数列中的每个数是不同的。现在要求你删除这个数列中序号为x的元素,保证数列中的数的顺序是不变的。
13.给定两个链表数组,每个链表都已经按升序排列。请将两个链表合并到一个升序链表中,返回合并后的链表。
14.Victoria是一位颇有成就的艺术家,他因油画作品《我爱北京天安门》闻名于世界。现在,他为了报答帮助他的同行们,准备开一个舞会。
Victoria准备邀请n个已经确定的人,可是问题来了:
这n个人每一个人都有一个小花名册,名册里面写着他所愿意交流的人的名字。比如说在A的人名单里写了B,那么表示A愿意与B交流;而且如果A名单里面有B,那么B名单里面肯定有A,也就是说两个人如果一方愿意和另一方交流,那么另一方也肯定愿意和这一方交流。
Victoria觉得需要在这n个人里面确定m个人,保证这m个人每一个人都能在舞会中找到至少k个人交流,并求出一种方案以确定m的最大值是多少。
注意:自己的名单里面不会有自己的名字。
15.
小明终于忙完了各种各样的课程,终于可以继续学习算法了。
他在图论书上看到了树,树有许许多多特殊的性质。小明一下子就喜欢上了这种特殊的树。
于是,他发明了自己的对于无向图的评分方法。
一个无向图的分数定义为,各个连通块是树的数量。
现在给定一个n个点m条边的无向图,问在小明的评分方法下,分数为多少。一个连通块是树,当且仅当边数比点数少1。
深度优先搜索 (一) | Finished@2017-06-01 17:00:00 | haiq01 | ||
第 十一 课 | 深度优先搜索 (二) | Finished@2017-06-01 17:00:00 | haiq01 | |
第 十二 课 | STL Vector动态数组 | Finished@2023-06-28 14:00:00 | haiq01 | |
第 十三 课 | 图论专题 图的存储和遍历(一) | Finished@2017-06-01 17:00:00 | haiq01 |