随笔分类 - Algorithm
算法,ACM
摘要:1、题目类型:数论。2、解题思路:(1)由于距离公式定义为:|x1-x2|+|y1-y2|,所以可以将x 、y 分开求解;(2)排序x 、y 分析第 i 个数值的前后关系有 ans+=sum-(n-i)*X[i-1]。3、注意事项:注意记录sum时,sum越界,需用 double 记录。4、实现方法:[代码]
阅读全文
摘要:1、题目类型:BFS、位运算、优先队列。2、解题思路:深度搜索。题意,维修一台有病毒的电脑,有 n 种病毒、m 种补丁包,每种补丁包必需以基于当前电脑的某些条件(如必需在电脑上面存在某种病毒、不存在某种病毒等等),在满足当前条件的情况下,补丁包可以消除某些病毒,但同时也可能产生新的病毒。要求找出删除所有病毒的最短时间。步骤,(1)将给出的补丁包信息记录在结构体 Pragram 中;(2)当前电脑的...
阅读全文
摘要:1、题目类型:并查集。2、解题思路:并查集的应用。题意,城市里面有两个黑帮团伙Gang Dragon和Gang Snake,一共有n名团伙成员(还不知道属于这两个黑帮的哪一个)。现在警察局有一些信息,每条信息包含2个人编号,表示这2个人属于不同的帮派。问给你2个人的编号,能否确定他们是否属于同一个帮派。思路,用father[x]表示其所在并查集的父节点,other[x]表示一个与x处于不同帮派的人...
阅读全文
摘要:1、题目类型:暴力法、DFS。2、解题思路:题意,一块大的矩形区域的被分成多个矩形区域,现在要给不同的区域涂上不同的颜色,有不同颜色的刷子可以提供,每个刷子可以刷一种不同的颜色。每刷一次,将刷尽可能多的矩形区域。由于涂色的油漆会下滑,只有在一个区域的上部直接相邻的区域被刷了之后才能给这个区域刷。问该如何涂色使得切换刷子的次数最少。步骤:(1)根据输入建立结构体Ret,记录其区域位置及其该涂抹的颜色...
阅读全文
摘要:1、题目类型:图论、最大流、最小切割最大流定理、Dinic算法。2、解题思路:《算法艺术与信息学竞赛》中只是换了一种说明的原题(P317)。(1)构建二分图G,它的X结点为所有的宝石,每个宝石 i 用 Xi 来表示,连接一条容量为 Ii 的弧S-Yi;它的Y结点为所有的女孩,每个女孩 i 用 Yi 来表示,连接一条容量为Ei的弧Yi-T。(2)最小切割最大流定理(证明),步骤1:最小切割不可能包含...
阅读全文
摘要:1、题目类型:模拟、计算几何。2、解题思路:(1)检测是否为凹多边形;(2)检测圆心是否在凸多边形内部;(3)检测圆心到多边形所有边的距离是否小于半径 (具体见实现代码)。3、注意事项:注意多边形的顺时针和逆时针,由于上的是模板,所以细节考虑并不多。4、实现方法: [代码]
阅读全文
摘要:1、题目类型:模拟、栈。2、解题思路:题意,给你一个源程序,要你计算出程序运行的时间复杂度;(1)定义结构体Node,并根据需要重载其运算符"+"和"*";(2)模拟程序的执行顺序,"LOOP"和"OP"便进栈,"END"则弹出栈;(3)出栈过程中,对"OP"进行"+",对"LOOP"进"*"操作并记录在 ans 中;(4)ans 结构体,表示一个长度为11数组,第 i 位表示为 n 的 i 次方...
阅读全文
摘要:1、题目类型:LCA、并查集、DFS。2、解题思路:最近公共祖先(Least Common Ancestors):对于有根树T的两个结点u、v,最近公共祖先LCA(T,u,v)表示一个结点x,满足x是u、v的祖先且x的深度尽可能大。步骤,(1)构造树形结构;(2)用并查集的方法求解LCA,DFS深度搜索树,搜索过程中记录其father节点,直到询问的两个节点找到为止;(3)由于此题只是询问一对节点...
阅读全文
摘要:1、题目类型:模拟、贪吃蛇游戏、哈希表、BFS。2、解题思路:题意,给出活动空间大小、蛇身位置、空间中障碍物位置、目标位置,求解蛇的最少移动步数。难点,用进制的哈希对蛇身相对位置的保存。步骤,(1)根据输入记录Holedox的位置和stones的位置;(2)对Holedox的位置进行哈希状态压缩,哈希加密方式为Staten=Holedox位置的逐一相对位置的4进制*总行数*总列数+总行数*行位置+...
阅读全文
摘要:1、题目类型:Polya定理、组合数学、置换群。2、解题思路:Polya定理:(1)设G是p个对象的一个置换群,用k种颜色突然这p个对象,若一种染色方案在群G的作用下变为另一种方案,则这两个方案当作是同一种方案,这样的不同染色方案数为:;(2)置换及循环节数的计算方法:对于有n个位置的手镯,有n种旋转置换和n种翻转置换. 对于旋转置换: c(fi) = gcd(n,i) i为一次转过i颗宝石(i ...
阅读全文
摘要:1、题目类型:差分约束系统、SPFA算法。2、解题思路:(1)根据输入输入构图,并非简单的对输入进行构图,根据差分约束系统的理解,每个结束节点+1,而且第 i 个节点到第 i+1 个节点的权值为0、第 i+1 个节点到第 i 个节点的权值为-1;(2)SPAF算法寻找最短路径,是该路径的权值最大,初始状态下为-inf。3、注意事项:构图是解决差分约束系统这类题的关键,根据择优的不同,合适的选择SP...
阅读全文
摘要:1、题目类型:DP。2、解题思路:(1)确定N列的情况下同行不产生冲动的n中可能(因为N<=10,所以n<=60);(2)从上向下逐行,从左往右逐列遍历,其中dp[i][j][k]表示第 i 行时候,j 表示 i 行的状态情况,k 表示 i-1 行的状态情况下,最大可能的炮兵安置数目;(3)结果为最后一行所有情况的最大值。3、注意事项:注意1<<N表示2^N;获取N列n种情...
阅读全文
摘要:1、题目类型:数论、卡特兰数。2、解题思路:卡特兰数的经典应用;递归输出的灵活运用。3、注意事项:注意递归函数中第二个参数的处理,刚开始有点难于理解。4、参考博客:http://blog.csdn.net/scut_lyq00/archive/2009/07/30/4393598.aspx5、实现方法: [代码]
阅读全文
摘要:1、题目类型:模拟、计算几何、树状数组。2、解题思路:题意,给定n*n矩阵,和几种在线操作,包括对某一点(x,y)值修改,查询一个矩形(x1,y1,x2,y2)的元素和。步骤,(1)树状数组的经典应用;(2)面积处理过程中,面积=Sum(R,T)-Sum(R,B-1)-Sum(L-1,T)+Sum(L-1,B-1)。3、注意事项:注意貌似除了树状数组这种方法,其他的方法都TLE,面积处理时候,记得...
阅读全文
摘要:1、题目类型:计算几何、离散化、扫描法。2、解题思路:(1)根据输入记录每个矩形的位置,用Coor[i][4] 记录;(2)对已形成的点分别根据横纵坐标进行离散化;(3)扫描获得矩形的总面积。3、注意事项:注意程序实现过程中,横竖坐标的记录与调用。4、实现方法: [代码]
阅读全文
摘要:1、题目类型:模拟、哈希表、BFS。2、解题思路:(1)模拟Eigh Puzzle的变换方式,并记录在数组中;(2)由于变换的最终结果相同,所以采用反向的BFS遍历所有情况,并记录所有情况;(3)在查找情况过程中采用二进制哈希表形式,以便于查找;(4)根据题目每个输入的case对表中进行对应查找,直接输出答案。3、注意事项:注意哈希表方式,否则TLE。4、实现方法:(由于又借用模板,所以代码有点乱...
阅读全文
摘要:1、题目类型:DP。2、解题思路:(1)对输入TV Battle 按其终点进行排序;(2)DP时间点1--10080每个时间点的最大收益值,dp[i]表示第 i 个时间点的最大收益值。3、注意事项:注意按照终点排序,开始点不行。3、实现方法:[代码]
阅读全文
摘要:1、题目类型:图论、最大流、Edmonds_Karp算法。2、解题思路:(1)对输入的receptacle、devices的类型和数目进行构图,注意重边增加边的权值加加即可,而对于adapter的权值是无穷大;(2)Edmonds_Karp算法获得此时图的最大流,结果为devices总数减去最大流量max即可。3、注意事项:注意receptacle、devices的数目是一定的几位n、m,而ada...
阅读全文
摘要:1、题目类型:博弈、DP。2、解题思路:(1)构建18条边、9个三角形分别由那三条边组成;(2)模拟输入的残局,并记录A、B获得三角形的差值,中间利用player保持A、B主动权的变换;(3)DP递归剩余情况,寻找player到最后的单步最有情况;(4)判断最终的最大差值MAX,正负即A、B博弈的结果。3、注意事项:注意构造三角形三边是对应的16进制表示;DP递归过程中注意dp[]的更新。4、参考...
阅读全文
摘要:1、题目类型:计算几何、线段相交。2、解题思路:分析,读题后第一想法是从treasure点多边形向外做BFS直到到达边界,但区域内的各个不规则多边形无法确定;后发现只要在区域的四周的焦点间中点做与treasure点的线段,获取其最小焦点就可(即使线段通过内部线段的交点此时不影响结果,同样计算了两次)。步骤,(1)对区域四个边界上的点进行排序(源码的方法比较呆板、代码比较冗余,应该有更好的方法);(...
阅读全文

浙公网安备 33010602011771号