BSGS模板(互质与不互质) 洛谷P4195、P3846
摘要:互质:原地址 洛谷P3846模板: //x的多少次方同余于y (mod p) //将x拆分 移项 #include<bits/stdc++.h> using namespace std; map<int,int> mp; int x,y,mod; int quick_pow(int a,int k)
阅读全文
posted @
2019-07-31 15:55
rua-rua-rua
阅读(265)
推荐(0)
杜教筛详解+入门题
摘要:首先看看大佬的博客 下面是推理过程,然而我们只需要记结论(h,g,f 都是假定的函数,S是f的前缀和函数): 例题1:N=1e10 ,求下式 思路:S(i)是f的前缀和,我们想找到一个g使得h的前缀和好求(h=f*g)。 先将h的式子写出来: 再把f套成u,我们会发现,前面那一部分是可以套莫比乌斯的
阅读全文
posted @
2019-07-31 15:44
rua-rua-rua
阅读(338)
推荐(0)
整除分块(数论分块)
摘要:转载自此博客 整除分块: 给定n,求(Σd=1n ⌊n /d⌋)%998244353,n<=1e14 直接枚举会爆 考虑优化: 我们发现,⌊n/d⌋是有可能等于⌊n/(d+1)⌋的 那我们为什么要重复算呢? 直接加就好了!! 那也就是说,对于一个i,我们要找到一个j,使得⌊n/i⌋=⌊n/(i+1)
阅读全文
posted @
2019-07-31 15:08
rua-rua-rua
阅读(523)
推荐(0)
洛谷P3327 [SDOI2015]约数个数和——莫比乌斯反演
摘要:约数个数和 题目链接 题解: 思路: 1.转换:将枚举i是x的倍数,j是y的倍数转换成枚举一个约数,有多少个数是其倍数,这样可以用整除分块预处理 整除分块: 给定n,求(Σd=1n ⌊n /d⌋)%998244353,n<=1e14 直接枚举会爆 考虑优化: 我们发现,⌊n/d⌋是有可能等于⌊n/(
阅读全文
posted @
2019-07-30 21:38
rua-rua-rua
阅读(221)
推荐(0)
数论考试题(b) 求约数的约数的最大个数
摘要:题意:求1~n范围里约数的约数的个数加起来最多的是哪个数 及其总数 题解:
阅读全文
posted @
2019-07-29 21:24
rua-rua-rua
阅读(265)
推荐(0)
bzoj2064 分裂 (状压dp神题)
摘要:题意: 给n1个物品1,和n2个物品2,求最少的操作次数,使物品2变成物品1(可以拆分物品2,也可以聚拢) 分析: 数据范围小->状压或暴搜,考虑暴搜,不好存状态,因为把两个物品拼接起来物品的数量会改变。于是只能考虑状压。(考场上还有半个小时的时候极其兴奋地去打状压,哇塞我好聪明,哇塞我好强,竟然打
阅读全文
posted @
2019-07-28 20:12
rua-rua-rua
阅读(253)
推荐(0)
月下“毛景树” 树链剖分模板题(洛谷P4315)
摘要:树链剖分维护的都是点,而这道题要求的是边。 解决:就把边权下放,变成点权,注意下放后查询u到v的路径时要除去lca的点权,因为lca的点权是其父亲的边权 细节:线段树的加标记与等于标记的维护与下传 #include<bits/stdc++.h> using namespace std; #defin
阅读全文
posted @
2019-07-25 21:47
rua-rua-rua
阅读(156)
推荐(0)
平衡树(模板+文艺平衡树)
摘要:模板存一下:求前驱后继,求x的排名和排在的x名的数,删除和插入一个数。 /* https://blog.csdn.net/clove_unique/article/details/50630280 */ #include<bits/stdc++.h> using namespace std; #de
阅读全文
posted @
2019-07-25 21:15
rua-rua-rua
阅读(476)
推荐(0)
「分块」数列分块入门2 by hzwer
摘要:题意:给出一个长为n的数列,以及n个操作,操作涉及区间加法,询问区间内小于某个值x的元素个数。 注意细节!! 对于最后一块非整块,要特殊处理!!!
阅读全文
posted @
2019-07-24 18:58
rua-rua-rua
阅读(584)
推荐(0)
洛谷P3224 [HNOI2012]永无乡 线段树合并模板
摘要:题意: Q 查询与x连通的第k小B 将两个集合连通 做法:求集合第k小->值域线段树 集合连通关系->并查集维护 合并集合->线段树合并 注意:线段树的下标是值域 id存储的是 以线段树节点为下标 题中对应的点标号 query中返回的是 那个点的标号 而 l r 是对应的值域 此题值域小 不需要离散
阅读全文
posted @
2019-07-24 09:41
rua-rua-rua
阅读(153)
推荐(0)
分块 蒲公英 洛谷P4168 求区间众数(强制在线)
摘要:洛谷P4168 题意:求区间l到r的众数 强制在线思路:分块 考虑维护什么:对于整块 希望直接得到众数及其出现的次数 对于零散处 暴力求出每个数出现次数 但还要知道它们在整块中的出现次数 来更新答案维护两个要预处理的数组:ans表示块与块之间的众数是什么 sum表示某个数在某一块之前出现的次数O(n
阅读全文
posted @
2019-07-23 20:27
rua-rua-rua
阅读(336)
推荐(0)
状压dp入门(模板题+思维题)
摘要:洛谷P1879 [USACO06NOV]玉米田Corn Fields 入门题 洛谷 P1896 [SCOI2005]互不侵犯 洛谷P2704[NOI2001]炮兵阵地 洛谷P2051 [AHOI2009]中国象棋 待更新。。。
阅读全文
posted @
2019-07-22 21:08
rua-rua-rua
阅读(591)
推荐(1)
线段树优化dp(elect选择)
摘要:好几天以前的考试题,现在才想起来调。。 题意 选格子,要求选出的权值最小,但每次选的格子范围有限制:abs(j-k)<=w[i][j]+w[i-1][k] w是其另一个值 暴力:O(n*m*m*T) 优化:对于将要选的一行格子,将其上一行格子能够覆盖的范围处理出来,然后选这一行时,希望较快的得到在这
阅读全文
posted @
2019-07-21 21:29
rua-rua-rua
阅读(283)
推荐(1)
gdb调试
摘要:又学了一遍gdb调试,记录一下流程,以免遗忘 打开我的电脑->属性->高级->环境变量->Path->+ ; +复制内容 打开c++->打开文件位置->minGW32->bin->复制地址粘在上面 点击window+R->cmd 输入cd进入目录->dir查看当前目录->输入:g++ 1.cpp -
阅读全文
posted @
2019-07-18 18:08
rua-rua-rua
阅读(262)
推荐(1)
HDU 4507 吉哥系列故事——恨7不成妻(数位DP求平方和)
摘要:一般的数位dp都是输出方案数,但这道题求平方和。 所以要用一个结构体保存dfs到这一层的信息:有多少个数满足条件cnt,满足条件的数的和是多少,它们的平方和是多少(一般求平方和都要维护和) 注意:记忆化搜索时要判断lim,如果有lim,就不能记录,因为记录了下一次就会被直接返回,而有限制的位就没有被
阅读全文
posted @
2019-07-18 17:22
rua-rua-rua
阅读(190)
推荐(0)
bzoj1415&洛谷P4206 [NOI2005]聪聪与可可
摘要:概率与期望 题意:每个时间单位,可可都会选择去相邻的景点(可能有多个)中的一个或停留在原景点不动。而去这些地方所发生的概率是相等的。当聪聪在景点 C 时,她会选一个更靠近 可可的景点,如果这样的景点有多个,她会选一个标号最小的景点。聪聪可以走一步或两步 在每个时间单位,假设聪聪先走,可可后走。若聪聪
阅读全文
posted @
2019-07-18 16:53
rua-rua-rua
阅读(190)
推荐(0)
后缀自动机(模板+例题)
摘要:存个模板 一道例题:后缀自动机求最小表示法 思路:利用性质:后缀自动机可以表示出一个串的所有子串。先把原串复制一遍,每次贪心地走最小的一个字符,如果没有,再向后for,一直走满len个 注意:len存的是后缀的长度,所以最终答案应该是nd[now].len-len+1 (要求的是最小表示的起始位置)
阅读全文
posted @
2019-07-16 21:01
rua-rua-rua
阅读(330)
推荐(0)
最小表示法(模板)poj1059
摘要:注意坑点 1.当求最小表示从哪一个字符开始时,一定要考虑有多种情况输出较小的答案!!那么i,j就不能单纯的交替跳了,要把j定成较大的一个,答案在i里面找 2.在k扩张时,一定要<len,否则会超出范围,而不会break掉 3.break的作用:处理由一个字符串组成的串,或循环节长度为2的串
阅读全文
posted @
2019-07-16 20:59
rua-rua-rua
阅读(187)
推荐(0)
求次小生成树(洛谷P4180&bzoj1977)
摘要:题意:求严格次小生成树(就是不能等于) 思路:先求一个最小生成树 枚举每条非树边 若连入则一定会成环那么在这个环中 删去最大的边(除非树边) 就是一个次小生成树但是如果那个最大边和非树边的值相等 有可能次小生成树的值就和最小生成树一样显然是不成立的 所以应该记录一下次大值 最大值不满足就用次大值注意
阅读全文
posted @
2019-07-11 16:47
rua-rua-rua
阅读(172)
推荐(0)
KMP poj3942
摘要:/* 题意: 有一个S串和一个T串,长度均小于1,000,000, 设当前串为U串,然后从前往后枚举S串一个字符一个字符往U串里添加, 若U串后缀为T,则去掉这个后缀继续流程。输出最后的S串。 */ //思路:把U串作为母串 动态匹配!! 因为an串中的长度是会变的 删掉之后的后缀也会变 #include using namespace std; #define N 1000005 int n...
阅读全文
posted @
2019-07-08 21:41
rua-rua-rua
阅读(141)
推荐(0)
最小表示法(模板) CH1807
摘要:最小表示法(模板) CH1807 思路:将原字符串加倍,一段一段暴力比较,复杂度n*n。通过排除无用比较实现线性求。详见蓝书(算法竞赛指南)P72。 注意:1.以1作为下标起始,应该输入时+1!!(易漏) 2.最小表示法中的while边界是原字符串!!
阅读全文
posted @
2019-07-08 21:39
rua-rua-rua
阅读(209)
推荐(0)
数位dp 求山峰数(hill)
摘要:>>>>题目 【题目描述】 山峰数是指数字排列中不存在山谷(先降后升)的数,例如0,5,13,12321都是山峰数,101,1110000111都不是山峰数。现给出n个数,请依次判断它们是否为山峰数,如果不是,输出-1。如果是,求出比它小的数中有多少个山峰数。 【输入格式】 第一行一个数n,表示询问
阅读全文
posted @
2019-07-06 16:49
rua-rua-rua
阅读(717)
推荐(0)