01 2016 档案
摘要:题意:给定整数矩阵,从第一列的任何一个位置出发,每次可以向右、右上、右下走一个格,将最后一行和第一行看成是邻接的,最终到达最后一列,路径长度为所经过格中的整数之和,求最小路径,答案不唯一,输出字典序最小的路径。分析:数组dp[i][j]记录从第i行第j列出发,到达最后一列的最小路径...
阅读全文
摘要:题意:给定三个杯子容量,初始只有第三个杯子满,其余为空,求最少需要倒多少水才能让某一杯子中有d升水,如果不能达到,则小于d且尽量接近。分析:因为要求转移水量最少,所以采用优先级队列保存每次的状态,保证每次都是取出转移水量最少的点进行扩展。bfs求出杯中水达到d(接近d)时最少转移水...
阅读全文
摘要:题意:给定三个杯子容量,初始只有第三个杯子满,其余为空,求最少需要倒多少水才能让某一杯子中有d升水,如果不能达到,则小于d且尽量接近。分析:因为要求转移水量最少,所以采用优先级队列保存每次的状态,保证每次都是取出转移水量最少的点进行扩展。bfs求出杯中水达到d(接近d)时最少转移水...
阅读全文
摘要:题意:给定迷宫图,求出一个人从入口进,从出口出,所走过的最短路径以及分别沿着左手边和右手边的墙走出迷宫所走过的方格数。分析:bfs求最短路对于沿左右两边的墙走的情况,记录好行走的方向及相对应的左/右边墙的方向坐标注意判断前方和左/右是否为墙,若前方为墙,则进行逆时针旋转,若左/右方...
阅读全文
摘要:题意:给定迷宫图,求出一个人从入口进,从出口出,所走过的最短路径以及分别沿着左手边和右手边的墙走出迷宫所走过的方格数。分析:bfs求最短路对于沿左右两边的墙走的情况,记录好行走的方向及相对应的左/右边墙的方向坐标注意判断前方和左/右是否为墙,若前方为墙,则进行逆时针旋转,若左/右方...
阅读全文
摘要:题意:定义一个结点的带宽是其距离所有相连结点的最远距离,一个图的带宽是图中所有结点带宽的最小值。给出一个图中各个结点的相邻情况,要求写出一个结点的排列,使得其所构成的图带宽最小。分析:枚举全排列+剪枝 注意:输入时的处理虽然结点个数不超过8个但是结点可以是26个字母中的任意一个!孤...
阅读全文
摘要:题意:一个字符串含有两个相邻的重复的子串,则称这个串为容易的串,其他为困难的串,对于给定n,l,求出由前l个字符组成的字典序第n小的困难的串。分析:按字典序在字符串末尾增加新的字符,并从当前字符串后缀入手,判断长度为偶数的子串中,是否含有重复的相邻子串。代码:#include#in...
阅读全文
摘要:题意:给定一系列按x坐标升序排列的点,一个人从左向右走到终点再从终点走回起点,要求每个点恰好经过一次,问所走过的最短路径长度。分析:可以看成是两个人同时从起点向终点走,且除起点终点外每个点恰有一个人经过。 John uses the following strategy: he ...
阅读全文
摘要:题意:一堆石头,给定长宽高,每种石头均可以使用无数次,问这堆石头可以叠放的最高高度,要求下面的石头的长和宽分别严格大于上面石头的长和宽。分析:采用DAG最长路算法,由于长宽较大,不能直接用于表示状态,因此采用d[i][x]表示以第i块石头为最高点,以其第x个边为高所能达到的最大高度...
阅读全文
摘要:A. Elephant题意:给定数x,从1.2.3.4.5中选择最少个数的数使最终和为x。分析:由于每个数字使用次数不限,所以每次都用5填充,若不能正好填满,剩下的余数再在1-4中选择。代码:#includeconst int maxn=250;const int INF=0xff...
阅读全文

浙公网安备 33010602011771号