- 博客(24)
- 收藏
- 关注
原创 O(1) LCA
基本思想按欧拉序将子树对应映射到序列上,求lca(x,y),pos[x]--pos[y]中深度最小的点就是答案。具体实现先dfs一遍,处理出深度并完成映射。然后用st表求出区间深度最小的点。最后回答模仿st表即可。代码#include<iostream>#include<cstdio>#include<string>#incl...
2018-10-31 23:08:01 2303 2
原创 线性筛素数与欧拉函数
线性筛素数问题:给出n,输出所有<=n的素数。1.暴力做法:枚举一个 i (3<=i<=n) 暴力判断 i 是否是素数,是的话输出。复杂度O(nlog(n)),海星。但是筛素数往往只是解题的一小步,这个复杂度有点高了。2.Eratosthenes筛法:第一种方法由于要挨个判断,复杂度高了些。为了避免不必要的判断,我们可以在找出一个素数时,筛掉它所有的倍数。...
2018-10-23 23:27:20 284
原创 【洛谷P4879】ycz的妹子
链接虽然题目很真实,但还是得无情简化给一个序列,在序列上进行:1.单点修改2.求和3.删除第x个点(将第x个点的位置修改为0)4.新增一个点(相当于将对应点+y)只看前两条,完全可以用树状数组/线段树解决。第三条可以想一下,我们需要在线修改,第x个节点的位置是会随时变的,如何维护呢?可以记录一下每个区间的节点数,用类似于二分的方法维护。这样的话,直接选择线段...
2018-10-17 23:12:13 298
原创 【CF_516_div2_B】Equations of Mathematical Magic
链接(减法、位数均为二进制下)简化:给出a , 对于方程 问有多少非负解。如果这是一道noip题,数据肯定有很大一部分是模拟分,所以暴力枚举拿到一半以上应该不成问题。于是我试了一下,发现了一个规律:对于一个a, 它的答案就是它所有子集的个数。即 (bitsize是a二进制下1的个数)。这个确实过了。但为什么是对的呢?首先把方程移一下项:相当于a对x...
2018-10-15 21:45:54 317
原创 【洛谷P2678】跳石头
链接这应该是普及组的题分析题,L的范围变态的大,肯定不能用普通模拟,更别说暴搜了。当求解性问题特别难时,可以考虑转化成判定性问题进行二分答案。二分哲学三问:可不可以进行二分如果我们使最小的长度是x可以过,那x-1,x-2...肯定都可以。那么我们要的,最大的x之后的点,肯定都不可以。这时问题的答案就具有了单调性。就可以进行二分答案。二分什么二分x的长度即...
2018-10-07 23:07:02 586
原创 【洛谷P1131】时态同步
背景:stu-49不是个好stu,听一下午树形DP毛都不会写。链接显然这是棵树首先声明,我会说两种想法,第一个想法是错误的,第二个想法是正解。第一个:考虑直接从根走,len [ u ] 表示从根到结点u的路径长度,取个max表示 max { dis[u][son[u] };(以上为假式子)这个做法显然是错的,因为我们只处理了根节点,而对于任意一个非根非叶结点,它...
2018-10-06 00:37:11 373
原创 【洛谷P1850】换教室
链接首先看题,求什么全局最大值,基本可以确定是用动归。我们先不考虑概率,那么问题转化为:上完N节课消耗的最小体力值是多少。如何转移?对于每个时间段,显然有换课有不换课两种选择,并且一节课的答案只与上一节课的答案有关。可以用 dis [ i ] [ j ] 表示 [ i 教室 ] 到 [ j 教室 ] 的最短路(数据很小,可以预先Floyd处理出来)用 f [ i ] [ 0...
2018-10-05 00:38:22 289
原创 【游记】国庆集训营
D1总算到了集训的时候了啊。。。。。。坐上车以后先看了番,《月色真美》真好看啊然后就开始玩“我有你没有”。我:我用高锰酸钾拖过地!某大佬:我吊打过std/我没掉过年级前三/我中考全市前三。。tql。。。中午吃了饭,兰州拉面真好吃。就是忘记拿过蓝书来让老师签名了......下午去买盒明信片吧......和大家在一起就是很开心啊,明天上午会怎样啊,不知道呢,zzm又...
2018-10-01 14:05:55 886 3
原创 【洛谷P1518】两只塔姆斯沃牛
觉得自己绿题做的太少了,就选了最简单的绿题。这个题类似于之前一个模拟赛的题,某子沐应该印象深刻(滑稽)就是纯粹的模拟。就是模拟啊。。解释都在代码里了qwq泥萌做法为什么那么高端啊,瑟瑟发抖#include<iostream>#include<cstdio>#include<string>#include<cstring>...
2018-09-27 22:50:27 668 3
原创 Dijkstra
存一下模板,指不定哪天手抖就删了#include<iostream>#include<cstdio>#include<queue>#include<string>#include<cstring>#define maxn 100005#define maxm 1000005using namespace std;in...
2018-09-23 12:46:23 373 5
原创 【洛谷P1967】货车运输
链接就这个题,调了三天。在累的老眼昏花的时候发现了一些有趣的事情:(此时内心:qwq?qwq!qwq...qwq!QAQAQAQ)--------------------------------------------------------闲扯完毕,手动分割-------------------------------------------------------简...
2018-09-21 23:17:23 347
原创 【洛谷P1439】最长公共子序列
链接(N方过百万是lsh的事,和我css有什么关系。)两个序列的最长公共子序列,一定是这个样子的(此处样例,不唯一):然后给映射一下,很容易发现,公共子序列的映射结果一定是上升的。于是乎就把问题转化成了求最长上升子序列。这里有一个log(n)的求法:f[len]表示长度为len的上升子序列的结尾。在dp时,如果大于结尾,就把他加到末尾;如果小于结尾,就在前面二分...
2018-09-17 22:55:29 253
原创 【洛谷P1351】联合权值
链接这个题让我们求得是最大联合权值和联合权值之和。先来讨论较简单的,联合权值之和。当需要求两个点之间的某些关系时,往往可以将其转化成一个点的问题。比如这个题,就可以通过枚举中间点,通过一些式子算出答案(如下图)指出的那一个点,以它为中点的答案之和就是它周围一圈的点所有组合的答案之和,这一点很好想到。枚举的话是不太好的,如果是一个200000的菊花图,就完美的TLE了。...
2018-09-12 21:25:53 310
原创 【洛谷P1073】最优贸易
链接仔细读题后发现,只进行一次交易。于是问题就转化成了:找一组点(u,v),使pri[v]-pri[u]最大。(此处觉得贪心能过一点)关于找两个点,一般来说都可以转化成找一个点,然后计算出它可以辐射到的点的答案。(好像有点乱)转化到这个题,就是找一个点,算出它之前的点中最小的,它之后的点中最大的,这样就可以算出经过这个点的路径的最优答案。实际操作只需要把spfa稍稍改一下然...
2018-09-10 22:14:36 256
原创 【洛谷P1948】电话线Telephone Lines
链接这个题有两种做法,二分和动归。二分的想法比较朴素。本题满足单调性,如果支付一个额度的钱可以完成升级,那么支付更多的钱一定也可以完成。所以可以考虑二分答案,上界是max_L,下界是0。然后问题就变成了:是否可以用mid的钱来完成升级。这个判断的话,就是把多于mid的路径权值设为1,少于的不用管。那么d[n]最后就转化成 用mid的钱 走到n 最少需要免费多少条路。...
2018-09-10 21:16:02 264
原创 【洛谷P1064】金明的预算方案
大概。。。逆向思维?链接第一遍想的是按附件处理主件,这样的话可能会买很多个主件。维护的话应该是有办法的,只是不太好搞。于是我们考虑重点维护主件,按主件处理附件,无非就是五种情况。1.不选2.只要主件3.要主件和附件14.要主件和附件25.金明才做选择,我全都要!因为这个题数据构成比较简单,所以结构体处理一波,01背包搞一搞就过了。(我还考虑过跑最长路,真不知...
2018-09-03 21:05:24 264 2
原创 【洛谷P1095】守望者的逃离
链接第一次知道dp还能分开写。关于这个题,最开始一直没有脱离以前的dp模板,想压到一个dp里,这么做显然会姹紫嫣红。那么就可以考虑将dp分开。首先罗列出状态,即这一秒可以干什么:1.跑17米2.不动,加4点血3.使用大招,跑60米,耗10点血那么,就可以把这三个状态根据是否有血量参与,分成两组处理——1,23 。用贪心的思想来看,在能直接使用大招的情况下,必然使...
2018-09-02 21:52:54 331 2
原创 tarjan算法(缩点)
tarjan可以求强连通分量,在强连通分量的基础上,可以加一些操作来缩点。(我觉得此处应该有个图,即使不太用qwq)比如有一张这个图(懒得不想标号系列)它的强连通分量的情况大概是这样子(忽视无意间甩过去的那一笔)于是把它的强连通分量缩成点,就得到了这个东西(小精简变得真东西)现在已经知道了缩点是什么东西,那么如何缩呢?只需要记录一个belong数组,belo...
2018-09-01 23:29:13 2220
原创 tarjan算法(强连通分量与割点)
tarjan算法可以求有向图的割点割边强连通分量(还有一些奇奇怪怪的操作) 我只会割点和强连通分量,割边(和缩点)以后可能会加,如果是来看割边的话,现在跑还来得及。。 (先来一张有向图叭)用这张图,我们来解释一些东西:设在有向图G中,GG为其子图,u,v分别是G中的节点。强连通:如果u可以到达v,v也可以到达u,那么u,v强连通。(比如2可以到达9,9可以通过...
2018-08-31 21:07:18 474 1
原创 矩阵乘法和矩阵快速幂
矩阵乘法很久以前就学了久到忘记了是什么时候然而清楚地记得我不会在集训的时候被废鼠姐姐一句话点醒(废鼠姐姐tql orz)手动分割---------------------------------------------------------------------------------------------------------设有矩阵A和B,A为p*n的矩阵,B为n*...
2018-08-29 14:16:31 233 1
原创 斐波那契公约数
问题描述f数组为斐波那契数列,给出n,m,求 思路这里用到了一个定理,证明如下:设 则有: 由此可推出:即 引理:证明:由欧几里得定理得: 即 然后不断递归,我们发现,这个过程就是在求gcd(n,m);证毕。代码...
2018-08-18 12:55:17 252
原创 树链剖分
何为树链剖分树链剖分,顾名思义,就是将一棵树解剖,映射到一个链上,从而进行1.子树/路径修改2.子树/路径查询(此处路径为路径上的点)所涉名词 重儿子 : 设一个节点x的子节点中size最大的是u,则称u为此节点的重儿子。 轻儿子 : 除重儿子外的其他节点。 重边 :x与u之间的边。 轻边 :与其他儿子的连边。 重链 :由 重边 连成的...
2018-08-16 20:15:52 242 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人