摘要: 题意 : 机器人要从一个m * n 网格的左上角(1,1) 走到右下角(m, n)。网格中的一些格子是空地(用0表示),其他格子是障碍(用1表示)。机器人每次可以往4个方向走一格,但不能连续地穿越k(0≤k≤20)个障碍,求最短路长度。起点和终点保证是空地。 分析 : 很明显的BFS最短路,但是这里 阅读全文
posted @ 2017-08-20 17:45 qwerity 阅读(483) 评论(0) 推荐(0) 编辑
摘要: 题意 : 有一块 h * w 的公告板,现在往上面贴 n 张长恒为 1 宽为 wi 的公告,每次贴的地方都是尽量靠左靠上,问你每一张公告将被贴在1~h的哪一行?按照输入顺序给出。 分析 : 这道题说明了每一次贴都尽量选择靠上靠左的位置,那既然这样,我们以1~h建立线段树,给每一个叶子节点赋值初值 w 阅读全文
posted @ 2017-08-18 16:11 qwerity 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 题意 : 有一个n个数的数列且元素都是0~n-1,问你将数列的其中某一个数及其前面的数全部置到后面这种操作中(比如3 2 1 0中选择第二个数倒置就产生1 0 3 2)能产生的最少的逆序数对是多少? 分析 : 首先铁定排除枚举法,直接暴力肯定是超时的。既然这样不妨来找找规律,从第一个数开始,如果我们 阅读全文
posted @ 2017-08-18 10:44 qwerity 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题意 : 在墙上贴海报, n(n<=10000)个人依次贴海报,给出每张海报所贴的范围li,ri(1<=li<=ri<=10000000)。求出最后还能看见多少张海报。 分析 : 很容易想到利用线段树来成段置换,最后统计总区间不同数的个数。但是这里有一个问题,就是区间可以很大,线段树开不了那么大的空 阅读全文
posted @ 2017-08-17 17:12 qwerity 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 题意 : 给出一段n个数的序列,接下来给出m个询问,询问的内容SPOJ是(L, R)这个区间内不同的数的个数,HDU是不同数的和 分析 : 一个经典的问题,思路是将所有问询区间存起来,然后按右端点排序 最后从左到右将原区间扫一遍,扫的过程当中不断将重复出现的数字右移 也就是如果一个数字重复出现,那么 阅读全文
posted @ 2017-08-16 16:01 qwerity 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 题意 :输入一棵二叉树,你的任务是按从上到下、从左到右的顺序输出各个结点的值。每个结 点都按照从根结点到它的移动序列给出(L表示左,R表示右)。在输入中,每个结点的左 括号和右括号之间没有空格,相邻结点之间用一个空格隔开。每棵树的输入用一对空括 号“()”结束(这对括号本身不代表一个结点),注意,如 阅读全文
posted @ 2017-07-30 13:48 qwerity 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 题意 : 给定一个 w * h 的 矩阵,在矩阵中找不同n个连通块的个数(旋转,翻转,平移算作一种) 分析 : 这题的关键点有两个 ① 生成n连块并且存储起来(因为题目是多测试用例,如果每一次都重新生成必将浪费很多时间) ② 判断是否生成了重复的n连块 存储 :首先先确定用什么结构来存储n连块的信息 阅读全文
posted @ 2017-07-19 17:23 qwerity 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 题意:有个#字型的棋盘,2行2列,一共24个格。 如图:每个格子是1或2或3,一共8个1,8个2,8个3. 有A~H一共8种合法操作,比如A代表把A这一列向上移动一个,最上面的格会补到最下面。 求:使中心8个格子数字一致的最少步骤,要输出具体的操作步骤及最终中心区域的数字。如果有多个解,输出字典序最 阅读全文
posted @ 2017-07-18 11:51 qwerity 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 题意:你有一篇n(2≤n≤9)个自然段组成的文章,希望将它们排列成1,2,…,n。可以用Ctrl+X(剪切)和Ctrl+V(粘贴)快捷键来完成任务。每次可以剪切一段连续的自然段,粘贴时按照顺序粘贴。注意,剪贴板只有一个,所以不能连续剪切两次,只能剪切和粘贴交替。例如,为了将{2,4,1,5,3,6} 阅读全文
posted @ 2017-07-18 11:37 qwerity 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 题意 : 有装满水的6升的杯子、空的3升杯子和1升杯子,3个杯子中都没有刻度。不使用道具情况下,是否可量出4升水呢? 你的任务是解决一般性的问题:设3个杯子的容量分别为a, b, c,最初只有第3个杯子装满了c升水,其他两个杯子为空。最少需要倒多少升水才能让某一个杯子中的水有d升呢?如果无法做到恰好 阅读全文
posted @ 2017-07-18 10:59 qwerity 阅读(219) 评论(0) 推荐(0) 编辑