随笔分类 - C++
摘要:这题好妙啊,看讨论区很多做法,但我都不会^ ^ http://www.51nod.com/Question/Index.html#questionId=1542&isAsc=false 讨论区kczno1大佬的做法: dfs一遍,每个深度记每个字母的奇偶性,这个用一个二进制数就可以了。 然后对每个询
阅读全文
摘要:一、dp(由于定义不同,有两种写法,其实dp太灵活了说有几种写法都不奇怪) 一种是记录以每个节点(u)为根,到其子树的最远叶节点的最大距离(dp[u][1])和次大距离(dp[u][0]); 这样以该节点为根的子树的直径即为dp[u][0]+dp[u][1], 对于每个节点取max即为全树的直径;
阅读全文
摘要:1、邻接矩阵 简单,开一个二维数组,pic[ i ] [ j ] = w 表示标号为 i 的顶点到标号为 j 的顶点有一条权值为 w 的有向边; 初始化:顶点自己到自己距离为0,不存在边设为inf; 2、邻接表 邻接表是一种对于每个顶点,用链表来存储以该点为起点的边的数据结构; 由定义知我们不需要再
阅读全文
摘要:V3其实和dp关系不大,思想挂标题上了,丑陋的代码不想放了。
阅读全文
摘要:dp[ i ][ 0 ] : 第i个位置不取 dp[ i ][ 1 ] : 第i个位置取 这样就可以得到状态转移方程:
阅读全文
摘要:1402最大值:正向从1到n,如果没有限制,就依次递增1,如果有限制,就取那个限制和递增到这的最小值。这样保证1和每个限制点后面都是符合题意的递增,但是限制点前面这个位置可能会有落差(之前递增多了)。不过我们再反向来一遍,再使每一个限制点前面都是符合题意的递增,每个位置取反向这个过程和正向扫过的最小
阅读全文
摘要:https://nanti.jisuanke.com/t/39280 讲道理这题写bfs求最大边权限制下从1到n的最短步数,然后二分判一下就行了。 然鹅我还是直接套了dij,一开始纠结dij能不能过,后来同学帮讲了一下发现由于二分的存在还是没问题的。 数论还没怎么学,D的dp也先不补了,窝dp奇差。
阅读全文
摘要:51nod level 2:50/51 剩的一个题是切比雪夫距离转曼哈顿距离,现学的,bzoj3710过了,51nod上全wa了,很迷,可能有坑⑧。 level 3:62/68 之前有的题有思路但是不敢写,有的题属实不会。剩下的这几个是铁不会。还有的题虽然写了但还是不会……哈哈哈还有的题写了忘了。
阅读全文
摘要:要求每段的点数都一样,因此分的段数cnt肯定是n的因子,要求每段都有山峰,因此cnt肯定小于等于山峰数量。分段的宽度d=n/cnt,对山峰数量做一个前缀和,检查一下每一段的山峰数量是否没有增加即可。
阅读全文
摘要:我本来想把每个谷都处理了,想了下觉得不好办。后来看其他人写的是处理每个位置,把每个位置可以接的水累加起来。整挺好。
阅读全文
摘要:对于每一个元素,预处理出它作为最小值,两边可以作用到的最大位置。比如下标∈[0,8]的这个数组:1 8 6 2 5 4 3 8 7,1可以作用到所有区间,2可以作用到区间[1,8],第一个8可以作用到[1,7]。也就是说从两边分别找到第一个大于等于这个元素的位置,然后标记,其实就是找最宽的区间长度。
阅读全文
摘要:好好读题嗷:“所以我们要求阵中的魔法链的魔力值最大值尽可能的小,与此同时,魔力值之和要尽可能的大。” 第一条件是生成树的最大边权更小,第二条件是在最大边权的限制下搞一个最大生成树。 至于最大生成树,如果用prime就把边权全都置负,如果用kruskal就把边权降序排列,生成的时候加一个小判断。
阅读全文
摘要:还以为序列自动机是什么,写完无意间看到帖子原来这就是序列自动机……这算自己发现算法🐎(雾 看网上的序列自动机是O(26*len)预处理,O(len)查询,不过用vector和二分查找就可以更快一点了,写起来也比较清楚。 主要思想就是对于母串,从前往后扫一遍,记录每种(就那26种)字母出现的下标,p
阅读全文
摘要:好久没写blog了嗷。 挑战程序设计竞赛上二分的标题就是——不光是查找值。所以在这里总结一下上一周的二分三分训练。 零、有序数组中查找某个值(不说了) 一、最大化最小值 POJ2456、POJ3258 这两个题非常像嗷,稍微改下代码就可以了嗷。 我先做的3258. 2456: 3258: 二、假定一
阅读全文
摘要:普通算法肯定T了,所以怎么算呢?和矩阵有啥关系呢? 打数学符号太费时,就手写了: 所以求Fib(n)就是求矩阵 | 1 1 |n-1 第一行第一列的元素。 | 1 0 | 其实学过线代的同学应该一看就看出来了,然鹅我还没学,所以不得不写几个不必要的等式=。=
阅读全文
摘要:题目链接:http://www.51nod.com/Challenge/Problem.html#!#problemId=1265 以其中某一点向其它三点连向量,若四点共面,这三个向量定义的平行六面体的体积为零。 而这个体积等于这三个向量的混合积,所以只要验证混合积是否为零。 |ax ay az|
阅读全文
摘要:我们学校大一不开线代,多捞啊。做题时碰到了一些诸如矩阵快速幂、向量混合积之类需要线代知识的问题就很难受。 自己问同学+百度稍微了解了一点,先写一下矩阵乘法和矩阵快速幂的模板,普适性还是太低,以后慢慢改吧。 注意要输入矩阵的行列和元素。
阅读全文
摘要:题目链接:http://www.51nod.com/Challenge/Problem.html#!#problemId=1264 检查点的位置就行了,具体见注释。
阅读全文
摘要:题目链接:http://www.51nod.com/Challenge/Problem.html#!#problemId=1298 转化成判断三条线段和圆是否🍌相交就行了
阅读全文
摘要:题目:POJ3080 http://poj.org/problem?id=3080 题意:对于输入的文本串,输出最长的公共子串,如果长度相同,输出字典序最小的。 这题数据量很小,用暴力也是16ms,用后缀数组可以到0ms,但我不会XD。 暴力: KMP: 题目:POJ3461 http://poj.
阅读全文