随笔分类 - Step By Step
POJ训练题
摘要:头文件&吧啦吧啦~ 1 #include <set> 2 #include <map> 3 #include <list> 4 #include <queue> 5 #include <stack> 6 #include <string> 7 #include <math.h> 8 #include
阅读全文
摘要:题意:给出字符串 s 和 t,如果 t 中有跟 s 完全相同的字母,数量等于或者多过 s,就将 s 这个数量加到 YAY! 的答案里,少于的话就加 t 中有的数量;如果 t 中有跟 s 相同的字母但是大小写不对应(例如A-a,z-Z),就加到 WHOOPS 的答案里。 解题思路:开两个大小为52的数
阅读全文
摘要:定义:在一些应用问题中,我们需要划分n个不同的元素成若干组,每一组的元素构成一个集合。这种问题的一个解决办法是,在开始时,让每个元素自成一个单元素集合,然后按一定顺序将属于同一组的元素所在的集合合并。其间要反复用到查找一个元素在哪一个集合的运算。适合于描述这类问题的抽象数据类型称为并查集。并查集是一...
阅读全文
摘要:线段树转载请注明出处,谢谢!http://blog.csdn.net/metalseed/article/details/8039326持续更新中···一:线段树基本概念1:概述线段树,类似区间树,是一个完全二叉树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问...
阅读全文
摘要:博弈论(一):Nim游戏重点结论:对于一个Nim游戏的局面(a1,a2,...,an),它是P-position当且仅当a1^a2^...^an=0,其中^表示位异或(xor)运算。Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规则和无比优美的结论,由这个游戏开始了解博弈论恐怕是最合...
阅读全文
摘要:高斯消元法,是线性代数中的一个算法,可用来求解线性方程组,并可以求出矩阵的秩,以及求出可逆方阵的逆矩阵。高斯消元法的原理是:若用初等行变换将增广矩阵 化为 ,则AX = B与CX = D是同解方程组。所以我们可以用初等行变换把增广矩阵转换为行阶梯阵,然后回代求出方程的解。以上是线性代数课的回顾,下面...
阅读全文
摘要:题意: 给你n*m的矩阵,然后每行取一个元素,组成一个包含n个元素的序列,一共有n^m种序列, 让你求出序列和最小的前n个序列的序列和。 解题思路: 1.将第一序列读入seq1向量中,并按升序排序。 2.将数据读入seq2向量中,并按升序排序。 将seq2[0] +seq1[i] ( 0<=i<=n
阅读全文
摘要:一、叉积叉积的计算是线段方法的核心。对于向量p1和p2,叉积是由点(0,0)、p1、p2和p1+p2构成的平行四边形的有向面积。另一种与之等价但更有效的的叉积定义方式是将其看做矩阵行列式:p1×p2 = x1y2 - x2y1 = - p2×p1若p1×p2为正,则相对于原点(0,0)来说,p1位于...
阅读全文
摘要:第一道:poj 1905Expanding Rods 题意:两道墙(距离L)之间架一根棒子,棒子受热会变长,弯曲,长度变化满足公式( s=(1+n*C)*L),求的是弯曲的高度h。 首先来看这个图: 如图,蓝色为杆弯曲前,长度为L 红色为杆弯曲后,长度为s h是所求。 又从图中得到三条关系式; (1
阅读全文
摘要:题意: 如上图所示,将一个字符串进行分割,反转等操作后不同字符串的个数: 例如字符串abba:可以按三种比例分割;1:3;2:2;3:1 部分反转可以得到如下所有的字符串: 去掉重复可以得到六个不同的字符串,输出6; 解题思路: 此题用反转函数reverse比较方便,然后就和模拟差不多,要列出所有情
阅读全文
摘要:题意:每个物品看成一个节点,酋长的允诺也看作一个物品, 如果一个物品加上金币可以交换另一个物品,则这两个节点之间有边,权值为金币数,求第一个节点到所有节点的最短路。 因为有等级限制,所以枚举每个点作为最低等级,选取符合所有符合等级限制的点 最短路问题,不过因为存在着等级的差异所以需要枚举一下。本题的
阅读全文
摘要:我们都知道 二分查找 适用于单调函数中逼近求解某点的值。 如果遇到凸性或凹形函数时,可以用三分查找求那个凸点或凹点。 下面的方法应该是三分查找的一个变形。 如图所示,已知左右端点L、R,要求找到白点的位置。 思路:通过不断缩小 [L,R] 的范围,无限逼近白点。 做法:先取 [L,R] 的中点 mi
阅读全文
摘要:题目大意:给你两个数l,r(l<r),求一个数是大于等于l且小于等于r的数中二进制数的1的个数最多,如果1的个数相同则取最小的那个(翻译渣,请见谅!) 思路:把左区间L化为二进制,再把左区间的二进制的从最小位开始,每位变为1,因为这是在当前1的个数中最小的且大于L的。条件是小于等于右区间R。 代码:
阅读全文
摘要:1.Map是c++的一个标准容器,它提供了很好一对一的关系。Map是一种关联是容器,在map中增加和删除元素非常容易。可以修改一个特定的节点而不对其他节点不产生影响,由于map是一种关联式容器,Key--value结构我们必须明确,在map中我们可以根据key的值修改其对应的value的值,而不能修...
阅读全文
摘要:题意:给定两个字符串,求它们对齐匹配的最大值要求:可以两个字符匹配,也可以一个字符和‘-’匹配,但是不能两个‘-’匹配,例如:AGTGATGGTTAG这两个字符串可以看成是AGTGATG-GTTA-G也可以看成是AGTGAT-G-GT--TAG分析:这是一个变形的最长公共子序列,最优解:1.取字符i...
阅读全文
摘要:知道是数独问题后犹豫了一下要不要做(好像很难的样纸==。),用dfs并剪枝,是一道挺规范的搜索题。先介绍以下数独吧~数独(Sudoku)是一种运用纸、笔进行演算的逻辑游戏。玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格 的数字,并满足每一行、每一列、每一个粗线宫内的数字均含1-9,不重复。 ...
阅读全文
摘要:题意:给你一个图,告诉你起始点S,终点E,‘.’可走,‘#’不可走。求从起点到终点1.总是先选择向左走的步数。2.总是选择先向右走的步数。3.最短路思路: 对于第一种和第二种,用深搜,只要写对存方向的数组即可:int r[4][2]= {{0,-1},{1,0},{0,1},{-1,0}};int ...
阅读全文
摘要:题目链接:http://poj.org/problem?id=2632题目大意:题意简单,N个机器人在一个A*B的网格上运动,告诉你机器人的起始位置和对它的具体操作,输出结果:1.Robot i crashes into the wall, if robot i crashes into a wal...
阅读全文
摘要:题目地址链接:http://poj.org/problem?id=1753题目大意: 有4*4的正方形,每个格子要么是黑色,要么是白色,当把一个格子的颜色改变(黑->白或者白->黑)时,其周围上下左右(如果存在的话)的格子的颜色也被反转,问至少反转几个格子可以使4*4的正方形变为纯白或者纯黑?解题思...
阅读全文
摘要:题意: 给你N和K,问能否将N拆分成K个互不相同的正整数,并且其中K-1个数的和为完全平方数. PS:这道题目原来是要求输出一种可行方案的,所以下面题解是按照输出方案的思想搞的。 分析: 我们尝试枚举那个完全平方数S,然后看能否将他拆分为 K-1 个数,并且不用到N-S 这一步可以用贪心+一次调整来搞定。为了保证 K-1个数都不同,我们尝试尽量用 1,2,3...这些连续自然数来构造,如果 N-S...
阅读全文