自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

努力做个书呆儿

路很长,你尽管走就是~

  • 博客(129)
  • 资源 (1)
  • 收藏
  • 关注

原创 《算法竞赛入门经典第2版》题解目录索引

《算法竞赛入门经典第2版》题解目录索引本文包含紫书的例题和习题分析题解的目录索引和一些建议紫书刷题进行中,github题解系列点这里OJ网址点这里第三章本章难度不高,可练习基本技巧,如输入输出格式,字符串处理,打表,STL使用,双指针,周期模型处理(循环节),对数降维等知识点,高手可跳过书中编号题目编号标题(题解链接)分类备注例题3-1UVA272Tex...

2020-02-04 20:59:46 4696 13

原创 例题8-7 UVA11572 Unique Snowflakes(25行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题8-7 UVA11572 Unique Snowflakes(25行AC代码)题目大意给定一个序列,求一个连续,无重复元素的最长序列。思路分析如果直接枚举任意长度的连续序列,复杂度为O(n2),再加上set判重O(logn),总时间复杂度为O(n2logn),显然需要优化。这里可以用双指针/滑动窗口优化设置指向当前区间的左右指针pl...

2020-03-04 14:39:23 338 3

原创 例题8-6 UVA1606 Amphiphilic Carbon Molecules(43行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题8-6 UVA1606 Amphiphilic Carbon Molecules(43行AC代码)题目大意在笛卡尔坐标系中给出n个点的坐标,点有黑白两种颜色,问用一个直板分割平面,如何令平面一侧的白点数目和另一侧的黑点数目和最大(在直板上的点全部加入总和)思路分析通过分析,可假设直板一定至少经过两个点,如果不是,则可以通过平移得到该状...

2020-03-02 19:48:52 356 2

原创 例题8-5 UVA11054 Wine trading in Gergovia(16行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题8-5 UVA11054 Wine trading in Gergovia(16行AC代码)题目大意一条直线上n个点等距离分布,每个点可以只能买酒或者卖酒,其中卖酒和买酒需求量相等,工作量=酒量*距离,求整体交易的最小工作量。思路分析归纳法预警:假设+递推考虑最左侧的村庄,假设其需求为a1a1>0(买酒)酒一定是村...

2020-03-01 16:13:53 239

原创 例题8-3 UVA1152 4 Values whose Sum is 0(21行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题8-3 UVA1152 4 Values whose Sum is 0(21行AC代码)题目大意给定4个长度为n个序列A,B,C,D,求四元组(a,b,c,d)的和为0所有可能组合,四个元素依次属于四个序列。注意,当序列A中存在重复值时,依旧计数思路分析直接思路是用一个四重循环,枚举每个可能组合,必定超时,所以接着优化,观察等式a+...

2020-03-01 14:56:38 170

原创 例题8-2 UVA1605 Building for UN(20行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题8-2 UVA1605 Building for UN(20行AC代码)题目大意给定一个长方体网格,构造出一种方式,令n个国家的办公室两两至少有一个相邻(同一层只隔一堵墙/正上方/正下方)思路分析问题可以简化为任意两个点均至少有一条边相连,类似图论中的完全图。但构造思路一下子想不起来,参考了紫书构造2层n*n的网格,第一层第i行...

2020-02-28 19:42:42 166

原创 例题8-1 UVA120 Stacks of Flapjacks(24行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题8-1 UVA120 Stacks of Flapjacks(24行AC代码)题目大意给定一叠具有半径大小的煎饼,从下到上位置编号为1n,有翻转操作flip(i),表示将第in个位置的元素翻转。现问如何用最少次数将所有煎饼从上到下按半径升序排列?思路分析有点像汉诺塔,不过这个是分治法的例题,通过研究样例,可以发现算法:1. 从底到...

2020-02-27 22:15:25 145

原创 例题7-7 UVA1354 Mobile Computing(50行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题7-7 UVA1354 Mobile Computing(50行AC代码)题目大意给定房间宽度r和s个挂坠的重量,设计一个尽可能宽的且能挂上所有挂坠的天平(宽度<r)。天平满足杠杆原理,假设左右臂长为a,b,左右挂坠重物为wl,wr,则a*wl=b*wr(仅一个挂坠时不用天平)题目分析一道技巧性极强的题目,需要深入思考从...

2020-02-25 23:11:45 209

原创 例题7-6 UVA140 Bandwidth(43行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题7-6 UVA140 Bandwidth(43行AC代码)题目大意给定一个无向图,将节点排序后,定义顶点i的带宽b(i)为顶点i与相邻结点在排列中的最大距离,而一个排序的带宽为b(i)的最大值。现要求出带宽最小的排列,存在多解则输出字典序最小者思路分析本质是N个顶点的全排列问题,为了解决字典序问题,将顶点先升序排列。计算过程中,仅遇到...

2020-02-23 15:21:35 198 3

原创 例题7-5 UVA129 Krypton Factor(38行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题7-5 UVA129 Krypton Factor(38行AC代码)题目大意用26个大写字母[A,Z]的前L个字母,构造无重复连续子串的字符串,按照字典序排序后,输出第n个字符串思路分析本题枚举可重复使用每个元素,若每次都是从小到大的顺序枚举字母,那么就是按字典序升序排列找到的结果,关键在于如何判断无重复连续子串?如果按照输入样例绘...

2020-02-22 21:50:46 154

原创 例题7-4 UVA524 Prime Ring Problem(28行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题7-4 UVA524 Prime Ring Problem(28行AC代码)题目大意给定n个数,标号为1,2,3,…,n,问n个数能否构成这样一个环:任意两个相邻数和为素数思路分析本质是求2~n的全排列,在构造过程中利用相邻和为素数进行剪枝因为n最大为16,两数之和最大为31,因此可手动写出2~31的素数,便于查询AC代码(C++...

2020-02-22 19:55:29 147

原创 例题7-3 UVA10976 Fraction Again(16行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题7-3 UVA10976 Fraction Again(16行AC代码)题目大意给定正整数k,求1/k=1/x+1/y,x>=y的所有解,若存在多解,x大者在前思路分析简单的二元一次方程求解,枚举x或y,即可求出对方值。关键在于如何确定枚举范围,根据题目条件,可进行如下公式推导,得到y的枚举区间:(k,2k]根据题意可知 x&...

2020-02-22 13:53:22 159

原创 例题7-2 UVA11059 Maximum Product(18行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题7-2 UVA11059 Maximum Product(18行AC代码)题目大意给定由N个整数构成的序列S,找出乘积最大的连续子序列,若最大值为负数,输出0思路分析对于连续子序列,枚举所有可能的起点和终点,计算区间内的乘积,取最大即可。这样看起来似乎要用一个3重循环,可进行优化,在枚举所有起点i和终点j时,在i~j计算乘积的过程中,...

2020-02-22 12:44:05 136

原创 例题7-1 UVA725 Division(21行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题7-1 UVA725 Division(21行AC代码)题目大意给定整数N,按字典序输出满足等式abcde/fghij=N的值,其中a~j为[0,9]的一个排列,0可以在首位思路分析若是直接枚举0-9的全排列,枚举量为10!,但仔细分析,假设存在等式P/Q=N,因为N已知,只要求出P,即可计算出Q,因此可将枚举量降至C105=3024...

2020-02-22 11:22:17 144

原创 例题6-22 UVA11853 Paintball(41行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题6-22 UVA11853 Paintball(41行AC代码)题目大意给定边长为1000的正方形,左下角和右上角坐标分别为(0,0)和(1000,1000),先已知若干圆的圆心坐标和半径,问能否从正方形左侧不穿过任何圆到达右侧?若存在多个出入口,则输出靠近上方的点。注意在仅仅在圆的内部才算穿过,边界不算思路分析看起来无从下手,因为...

2020-02-21 21:15:12 256

原创 例题6-21 UVA506 System Dependencies(67行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题6-21 UVA506 System Dependencies(67行AC代码)题目大意把每个命令要做的事理清,代码很简单本题的问题背景极有实际意义,例如Linux下各种包管理器开发应用程序时配置管理,如springboot框架等给定组件的依赖关系,根据命令输出相应信息,四种命令如下:DEPEND item1 item...

2020-02-21 17:57:45 220

原创 例题6-20 UVA1599 Ideal Path(67行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题6-20 UVA1599 Ideal Path(67行AC代码)题目大意给定一个n个顶点,m条边的无向图,每条边有颜色值(长度均为1),求出起点到终点的最短路径(颜色值表示),若存在多解,则输出路径中颜色值字典序最小者。(注意重边,自环)思路分析本题有两个条件:最短+字典序最小最短路用bfs可轻易解决,但字典序稍微棘手些,不过我们可...

2020-02-21 12:49:32 304

原创 例题6-19 UVA1572 Self-Assembly(39行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题6-19 UVA1572 Self-Assembly(39行AC代码)题目大意锻炼思维的好题,注重分析思路,等价条件转换推理哦给定n种正方形,每种正方形有4条边,每条边有2个字符构成,包含以下两种模式:第一个为A-Z的大写字母,第二个为+/-,如A+或Z-00当两条边的第一个字符相同,而第二个字符相反时,两边可相连,00不...

2020-02-20 21:53:28 259

原创 例题6-18 UVA12171 Sculpture(90行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题6-18 UVA12171 Sculpture(90行AC代码)题目大意给定笛卡尔坐标系上的长方体左下角坐标和对应边长,长方体间存在相离,相切,相交等各种关系,求总体的体积和表面积,对于完全被长方体包围的空间计算器体积而忽略面积。思路分析极好的一道题目,综合性强,思维量大,技巧性强,编码量大强烈建议完全弄懂分析思路,写代码是水到渠...

2020-02-19 23:33:54 477 1

原创 例题6-17 UVA10562 Undraw the Trees(29行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题6-17 UVA10562 Undraw the Trees(29行AC代码)题目大意本题理解题目很关键给定ascii字符表示的多叉树,输出指定的括号表达形式。其中存在共用孩子结点情况和重复结点名情况,如下图所示共用孩子结点:B的孩子是C和E,D的孩子也是C和E重复结点名:第一个结点A和最后一个同名,但输出时照输不误A...

2020-02-18 20:20:44 233

原创 例题6-16 UVA10129 Play on Words(34行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题6-16 UVA10129 Play on Words(34行AC代码)题目大意能否将n个单词顺序连接,其中每个单词的最后一个字母等于它后序单词的首字母(类似词语接龙)。其中单词可以重复。思路分析如果将26个小写字母作为图的顶点,每个单词作为边(比如one作为定点o和e的边),那么问题等价于是否存在欧拉回路或通路,在保证**图是连通(...

2020-02-17 19:51:54 269

原创 例题6-15 UVA10305 Ordering Tasks(30行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题6-15 UVA10305 Ordering Tasks(30行AC代码)题目大意给出有向无环图,输出拓扑排序(若有多个则任意输出一个)思路分析定义邻接表adj存储有向无环图,定义indegree记录每个点的入度vector<vector<int> > adj(n+1); // 邻接表vector<i...

2020-02-17 12:06:01 185

原创 例题6-13 UVA1103 Ancient Messages(59行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题6-13 UVA1103 Ancient Messages(59行AC代码)题目大意给定6种象形字符及其对于的标记字母,现用16进制字符表示一张图像,以字典序输出图像中的所有象形字符。有以下简化约定:字符仅包括给定的6种每个图像至少包含一个象形字符每个黑色像素均属于一个象形字符字符间相互独立,即不相交,不包含处于对角位置的像素...

2020-02-15 20:10:11 299

原创 例题6-12 UVA572 Oil Deposits(32行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题6-12 UVA572 Oil Deposits(32行AC代码)题目大意给定m*n的矩形方格,*和@分别表示没油和有油,求矩形方格中连通的油块个数(同一行,列,左右斜线上相邻均称作连通)思路分析用字符串二维数组grid存储方格,进行dfs遍历,在遍历中,将同一块中的格子用*标记,以免后续重复访问。可定义8个方向向量,简化代码注意...

2020-02-15 11:45:07 176

原创 例题6-11 UVA297 Quadtrees(30行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题6-11 UVA297 Quadtrees(30行AC代码)题目大意一个四叉树有三类节点,即父结点(P),黑色叶子(f),白色叶子(e)现给出两个四叉树,求合并后黑色像素个数。思路分析输入为四叉树的先序序列,因此先序递归建树很容易,但关键在于如何合并两棵四叉树,计算黑色个数。尝试1:想同步层次/先序遍历两个四叉树,然后统计黑色个...

2020-02-14 23:31:57 204

原创 例题6-10 UVA699 The Falling Leaves(23行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题6-10 UVA699 The Falling Leaves(23行AC代码)题目大意以树根节点为中心,画一根垂直线(可看成y轴),因此树根坐标为0,它的左子树根为-1,右子树根为+1,依次类推,即往左走-1,往右走+1,现在将坐标相同的点看成一叠,从左到右输出他们的权值和。思路分析和例题6-9有些类似,直观思路是想通过输入先序建树,...

2020-02-14 20:29:34 231

原创 例题6-9 UVA839 Not so Mobile(19行代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题6-9 UVA839 Not so Mobile(19行代码)题目大意给出每个支点的左右物体重量和到支点的距离,wl,dl,wr,dr分别表示左边物体重量和到左边的距离,右边物体重量和到右边的距离,当wl*dl==wr*dr成立时,说明杠杆平衡。忽略所有绳子和杠杆重量。思路分析有两种思路朴素:直接根据输入先序建树,接着后序遍历判断...

2020-02-13 20:52:25 194

原创 例题6-8 UVA548 Tree(42行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题6-8 UVA548 Tree(42行AC代码)题目大意给定二叉树的中序和后序遍历序列,求该二叉树中根到叶子的路径和最小者,若存在多个解,则选择叶子权值最小者(叶子权值不重复)思路分析关键在于中序和后序建树,后序遍历序列的最后一个元素来确定根(前序的话是第一个元素确定更),中序序列来划分左右子树,如此递归建立树对于路径和求解,建树完...

2020-02-13 15:12:34 195 1

原创 例题6-7 UVA122 Trees on the level(57行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题6-7 UVA122 Trees on the level(57行AC代码)题目大意给定若干个节点,构建一个二叉树,层次遍历打印结点值。其中结点值和位置以(value,path),value为整型值,path为从根到当前结点的路径,如LRR,表示左右右。思路分析很常规的问题,分割字符串得到值和路径,在构建树的过程中注意创建没有的结点,...

2020-02-13 09:48:43 244

原创 例题6-3 UVA442 Matrix Chain Multiplication(39行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题6-3 UVA442 Matrix Chain Multiplication(39行AC代码)题目大意求矩阵在不同乘法顺序下的乘法次数,假设矩阵A:a*b,矩阵B:b*c,那么A*B的乘法总次数为a*b*c思路分析矩阵链相乘是动态规划中的典例,可快速计算相乘次数最少的相乘方式,这里比较简单,只需求给定顺序的相乘次数,主要在于括号处理,...

2020-02-12 20:37:01 169

原创 例题6-4 UVA11988 Broken Keyboard(20行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题6-4 UVA11988 Broken Keyboard(20行AC代码)题目大意给定字符串,当输入[时,光标移动到首,当输入]时,光标移动到尾,给出移动后的字符串思路分析链表的插入模拟,list可轻松实现,详见代码注释若想手动实现,静态链表和动态链表均可,注意开头和结尾的处理AC代码(C++11,list)#include&l...

2020-02-12 20:33:25 202

原创 例题6-5 UVA12657 Boxes in a Line(33行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题6-5 UVA12657 Boxes in a Line(33行AC代码)题目大意对升序排列的n个数字(1开始编号)进行一系列操作,输出最终序列的奇位数之和。操作如下:1 X Y:把X移到Y左侧2 X Y:把X移到Y右侧3 X Y:交换X和Y4:反转序列(逆置)思路分析若是直接用链表模拟,在查找和反转时会消耗大量时间,导致...

2020-02-12 20:26:17 217

原创 例题6-6 UVA679 Dropping Balls(23行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题6-6 UVA679 Dropping Balls(23行AC代码)题目大意现有一个D层高的满二叉树,小球从根开始向下滚落,直至叶子结点,每个结点有开关标志flag(初值为false),滚落时左右子树选择规则如下flag=false:flag置为true,向左子树滚落flag=true:flag置为false,向右子树滚落现求第...

2020-02-12 20:20:22 193

原创 例题6-2 UVA514 Rails(19行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题6-2 UVA514 Rails(19行AC代码)题目大意给定包含n个数字的序列A,问数字序列B(1~n顺序排列)能否通过一个栈改变顺序来得到A。通过栈改变顺序时不可出现穿越数字。思路分析很自然的用栈来模拟整个过程,用j记录目标序列a和模拟序列连续相同个数,枚举1-n,先压入栈中,若栈顶等于a[j],则退栈,并且j++,继续比较下一个...

2020-02-11 23:37:17 191

原创 例题6-1 UVA210 Concurrency Simulator(64行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】例题6-1 UVA210 Concurrency Simulator(64行AC代码)题目大意题目难懂,仔细读题给定若干个程序,每个程序包含若干条指令,给出每个命令执行所需时间和每个程序的可用时间,模拟指令执行输出相应信息。五条指令如下:variable = constant:赋值语句,变量variable为单字符(26个小写字母...

2020-02-11 22:14:21 332 1

原创 习题5-11 UVA12504 Updating a Dictionary(37行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】习题5-11 UVA12504 Updating a Dictionary(37行AC代码)题目大意给新旧字典(键值对形式),按字典序输出增加,删除,修改的键值思路分析定义如下数据结构,分别表示旧,新字典,因为值可能非常大,所以也用string存储map<string,string> mpa, mpb; // 旧新字典接...

2020-02-09 19:50:51 192

原创 习题5-10 UVA1597 Searching the Web(65行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】习题5-10 UVA1597 Searching the Web(65行AC代码)题目大意给定若干篇有编号的文章,构造一个搜索引擎,处理查询命令。搜索引擎构造原题描述中的Figure-1说得很清楚,即对于每个单词,将它出现的地方以**(文章编号,行号)**形式记录。同时题目对问题做了简化:每个单词仅包含26个字母,其余字符(包括数字...

2020-02-09 18:51:00 195

原创 习题5-9 UVA1596 Bug Hunt(55行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】习题5-9 UVA1596 Bug Hunt(55行AC代码)题目大意给若干行数组定义和赋值,求第一个出现bug的行号(从1开始),bug判定规则如下:数组下标超过定义限制,比如定义a[10],那么a[0-9]合法,其余均非法需要引用数组的值时(即作为右值),它必须先被赋值,如下所示a[10] // 定义数组a,长度10a[1]=...

2020-02-09 12:40:37 285

原创 习题5-8 UVA230 Borrowers(44行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】习题5-8 UVA230 Borrowers(44行AC代码)题目大意书库有若干本书,每本书有作者和书名两个信息,排列规则:作者字典序小者优先,若相同,则书名字典序小者优先。现有三种操作:BORROW title:借书RETURN title:还书SHELVE:将目前已还的书按排列规则显示其所在的相对位置(具体格式见原题)给定一系...

2020-02-08 19:39:16 212 2

原创 习题5-7 UVA12100 Printer Queue(32行AC代码)

紫书刷题进行中,题解系列【GitHub|CSDN】习题5-7 UVA12100 Printer Queue(32行AC代码)题目大意有一个打印队列,每个打印任务优先级为1-9,按如下规则打印:若队首优先级不是最高,则移到队尾;否则打印队首后,令其出队现计算完全打印第n个位置(0~n-1)需多长时间?思路分析定义Job,其中pos和pty分别表示打印任务的在队列中的位置和打印优先...

2020-02-08 15:48:34 244

借用MFC的计算机图形学中点Bresenham画圆的项目源代码

该资源为使用MFC框架的计算机图形学中的圆形绘制项目代码,便于初学者快速掌握基本画图方法,完成计算机图形学实验,读者主要学习MbCIrcle.h与MbCircle.cpp两个文件中的代码即可,该资源对应于本人的一篇博客,本意是想免费供大家下载,若是不想花钱下载,可私聊我,我私发给你。qq:1140132928

2018-10-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除