- 博客(7)
- 收藏
- 关注
原创 Pollard-Rho Algorithm简述
Pollard-Rho算法:在期望O(n14)\mathcal{O}(n^\frac{1}{4})O(n41)的时间复杂度内分解一个较大的数N的质因数1.用Miller-Rabin判断该数是否为质数,是则返回;2.用生日悖论搜索该数的某个因数;3.对于得到的因子继续调用Pollard-Rho分解其因数.#include<ctime>#include<cmath>...
2019-03-16 15:33:06 402
原创 POJ 3233 Matrix Power Series(矩阵乘法+分治/矩阵加速递推/倍增)
POJ 3233矩阵乘法+分治/矩阵加速递推/倍增分治:sum=A1+A2+...+Ak         =A1+A2+...+Ak/2+Ak/2+1+...+Ak   &nbs
2019-02-16 15:30:06 272 1
原创 JZOJ P4313 电话线铺设(最小生成树+倍增求LCA)
DescriptionSolution王牌电缆n-2根,李牌电缆1根,使得形成的连通块边权之和最小,因此可以想到最小生成树;首先对于所有的W边跑一遍Kruskal,得到一棵MST(最小生成树);然后对于所有的L边:若开始时得到的MST不完全连通,则依次枚举两个端点分别属于两个连通块的L边,取其最小值;否则依次枚举所有L边,如果将其加入MST后会形成一个环,因此要删去这条环上最大的W边...
2019-02-15 20:26:28 249
原创 [NOI2010]超级钢琴(ST表+优先队列)
ST表+优先队列首先预处理出数组前缀和。某个区间SUM(l,r)=SUM_r-SUM_(l-1)枚举l,其r属于(l+L-1,l+R-1),可以用ST表预处理出SUM_r的最大值。对于每个位置x,记录一个三元组(x,x+L-1,x+R-1),并以其SUM(l,r)最大值将其存入一个大根堆。每次取出最大的一组,计入答案,并得到其最大值所在的pos,再存入两个新的三元组(x,x+L-1,po...
2019-02-14 19:19:37 249
原创 [NOIP2018]D1T2时间复杂度(模拟+栈)
传送门考前写一发题解加RP。这道题我当初在考场上是乱搞的。。。其实就是一个模拟题,虽然也花了我一下午加半个晚上的时间来调。首先存好行数与时间复杂度,O(n^w)就存w,O(1)的话就存为0。然后存储每一行,遇到F就压入栈,遇到E就弹出来,用一个数组记录尚未销毁的变量,过程中判断是否有语法错误(F与E是否匹配、变量是否重复),并记录下每个F对应的E的位置,这样的话在后面模拟的时候若遇到x&...
2018-11-09 00:02:14 230
原创 [SDOI2010]外星千足虫(高斯消元)
洛谷2447模2相当于异或运算,将高斯消元的板子改一改就行了。注意到n的范围到1000,于是可以考虑用bitset优化。消元过程中若发现某一列上每行均为0,可直接判断无解,否则记录下为1的在当前行之后最小的一行,对每一列求最大值,即为所需方程个数。#include<bitset>#include<cstdio>#include<cstdlib&am
2018-10-29 00:11:19 280
原创 C++STL几种常用容器简要归纳
本文基本上来自李煜东《算法竞赛进阶指南》,笔者仅作归纳总结。本文将简要介绍STL中vector,queue,priority_queue,deque,set,multiset,map,bitset八种容器及其操作方法。vector运用此容器需在程序前加上头文件#include< vector >。vector可理解为变长数组,基于倍增思想
2018-10-01 22:58:47 3218 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人