自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ylxmf2005's Blog

Think twice, code once.

  • 博客(125)
  • 收藏
  • 关注

原创 ARC100F Colorful Sequences

Description给定正整数 n,kn,kn,k 和长为 mmm 的正整数序列 aaa。定义一个序列是 k−k-k− 好序列 当且仅当存在其一个子串是 1∼k1 \sim k1∼k 的排列。求所有长为 nnn 的 k−k-k− 好序列中 aaa 的作为子串的出现次数之和,对 109+710^9 + 7109+7 取模。Solution考试遇到了,感觉不给 aia_iai​ 互不相同的那个数据范围作为提示这道题会更神仙。去 blog 里学习了一下,感谢 Link。显然好序列中没有相同的数。先

2021-07-20 17:41:12 130

原创 容斥 dp

容斥系数一般是 (−1)∣S∣(-1)^{|S|}(−1)∣S∣。初学容斥原理时都做过这样的一道题。有一张 n×mn \times mn×m 的棋盘,在上面染色,要求任意一行、任意一列的颜色都不完全相同。这是一个模型全部 −-− 至少一个 +++ 至少两个 $- \cdots = \ $一个也没有。所以我们枚举一下有多少行颜色一定相同,有多少列颜色一定相同。可以发现如果只有行或只有列,那么每行(每列)的颜色不一定相同,而同时有行和列就必须是同一颜色。那么用行数 +++ 列数套上容斥系数就行了。其实在

2021-07-19 16:11:47 372

原创 WC Day1 第一课堂 随机算法

设数组含有 nnn 个不同元素,随即快速排序算法的期望比较次数T(n)≤2nln⁡nT(n) \leq 2 n\ln nT(n)≤2nlnn证明显然随机选取的枢轴元素是等概率的。T(n)=(n−1)+∑i=0n1n(T(i)+T(n−i+1))=(n−1)+∑i=1n2nT(i)T(n) = (n-1)+\sum_{i= 0}^n \frac{1}{n}(T(i) + T(n - i + 1))\\= (n-1)+\sum_{i=1}^{n} \frac{2}{n} T(i)T(n)=(n

2021-02-01 11:11:02 184

原创 概率期望

概率对于一个随机试验,我们把它所有的可能性放在一个集合中。如果两个事件 AAA 和 BBB,满足 A∪B=∅A \cup B = \emptyA∪B=∅,即为 AAA 和 BBB 不能同时发生,那么称这两个事件是互斥的。两个互斥事件 AAA 和 BBB 同时发生的概率 P(A∪B)=P(A)+P(B)P(A \cup B) = P(A) + P(B)P(A∪B)=P(A)+P(B)。如果两个事件 AAA 和 BBB,满足 P(A∩B)=P(A)×P(B)P(A \cap B) = P(A) \time

2021-01-03 16:44:57 250

原创 Pollard Rho 质因数分解

暴力算法这是一个暴力递归分解质因数的伪代码void rp(int n) { if (n 是 质数) n 是 rp 的一个质因子, return; 枚举找到 n 的一个非 1 因子 p; rp(p), rp (n / p);}其中判断质数可以用 Miller Rabin。该暴力复杂度的瓶颈是找因子,如果给定的 nnn 是一个大质数如 109+710^9+7109+7,那么枚举的复杂度就一飞冲天了。生日悖论假设 n=109+7n=10^9+7n=109+7,只有一个非 11

2020-12-31 21:10:16 432

原创 二项式求导

(x+1)n=∑k=0nxk(nk)(x+1)^n = \sum_{k=0}^n x^k {n\choose{k}}(x+1)n=k=0∑n​xk(kn​)对左右同时求导,把组合数看作系数。n(x+1)n−1=∑k=0nkxk−1(nk)n(x+1)^{n-1} = \sum_{k=0}^n kx^{k-1} {n \choose k}n(x+1)n−1=k=0∑n​kxk−1(kn​)现在 kkk 的指数还是 111,再次求导,需要用到导函数的乘法法则n((1+x)n−1+(n−1)x(

2020-12-26 20:57:27 2417 1

原创 NOIP T2 字符串匹配

考场上写的是一个常数较大的 O(nln⁡n)O(n \ln n)O(nlnn),但是犯了一些让自己惊讶的致命错误,挂了一堆分。以下是考场代码,并注释错误。#include <bits/stdc++.h>using namespace std;#define int long long //1. 这个地方 4 倍常数,你不知道要卡时间吗 const int N = 1e6 + 5, Base = 27, p = 1e9 + 7; // 2. 你这个数组大小 2^20 绝对 RE 了 啊

2020-12-13 14:53:22 176

原创 NOIp 膜你赛 第二场

钟神的题目不讲武德。题目按主观难度排序T3区间加法、乘法、覆盖和询问全局每个区间的平均数之和,分数使用逆元。我们发现暴力的两层循环去不掉,所以只能拆贡献,求一下每个数出现了多少次,这个东西预处理一下就有六十分的好成绩。那怎么 O(n)O(n)O(n) 求每个数出现了多少次呢?如果求每个数包含在多少个区间内,这个好算就是左边的长度和右边的长度乘起来,不过现在要求的还有区间长度,找一下规律(用纸画)假设 n=7n = 7n=7 显然它左右是对称的,贡献是一样的,那么我们看看前半部分n=1{1,2,3

2020-12-03 07:41:19 701

原创 CSP-S 2020 儒略日

儒略日大毒瘤模拟,出题人我日你马。以后考场上遇到大模拟,一定不要着急,选择最简单最好写的代码,三思而后行。如果没有把握可以先写部分分,说不定后面的题更简单。在纸上列一下需要注意的地方,写代码时分步调试闰年的计算法则,这个需要写一个函数 [l,r][l,r][l,r] 求 [l,r][l,r][l,r] 之间有多少个闰年。缺失的十天,加上这十天会不会出现进位。数据范围较大,不能模拟,可以循环节或二分。分段处理,端点问题。可惜我对于缺失的十天处理时出现了一点疏忽,导致考场卡在

2020-11-22 21:40:24 625

原创 Gym 101962I Colonial Mansions(二分答案 + 数据结构)

Description给定长度为 nnn 的序列 hhh 和 qqq 次询问1 i H1 \ i \ H1 i H 将 hih_ihi​ 修改为 HHH。2 i H2 \ i \ H2 i H 询问从 iii 出发可以移动的数的个数。对于 hi,hi+1h_i,h_{i+1}hi​,hi+1​,它们可以互相移动...

2020-10-24 19:26:43 196

原创 20ZR 普及普专题提高联测 部分题目

排列请问有多少个长度为 nnn 的排列 PPP 满足 ∣i−Pi∣≤1|i-P_i|\leq1∣i−Pi​∣≤1,答案对 998244353998244353998244353 取模。考虑第 iii 个位置只有填 iii 或 i−1i-1i−1,所以矩阵加速求斐波那契数列。游走...

2020-10-16 21:32:45 498 1

原创 CSP-S2考前综合强化刷题 Day7

water唯一的签到题,直接按出现次数从小到大排序一下贪心求就行了。circle一个数想要成为逆序对,它等后面的数选了它不选,那么对于后面的一个数情况可能是我不选,它选了,或是我不选,它不选,我不选,它不选,这样无限循环下去,那么第 nnn 次循环其实有 2n−12n-12n−1 不选的概率。那么可以看成一个首项为 p(1−p)p(1-p)p(1−p) 公比是 (1−p)2(1-p)^2(1−p)2 的等比数列,这个东西有无限项,但它的公比小于 111 是可以收敛的。假设你的首项为 aaa 公比为

2020-10-07 12:23:30 157

原创 CSP-S2考前综合强化刷题 Day 6

math求gcd⁡(qa−1,qb−1) mod p\gcd(q^a-1,q^b-1) \bmod pgcd(qa−1,qb−1)modp答案是qgcd⁡(a,b)−1 mod pq^{\gcd(a,b)}-1 \bmod pqgcd(a,b)−1modpcandy给定 a1∼ana_1 \sim a_na1​∼an​ 和 b1∼bnb_1 \sim b_nb1​∼bn​,第 iii 次选择最小的能被 aia_iai​ 整除的 bib_ibi​ 删除,求能删多少次和删了哪些数。这个直接暴.

2020-10-06 14:58:18 126 3

原创 CSP-S2考前综合强化刷题 Day 5

blocks显然每个单位时间会让相邻两个数的差减小 111,也就是说相邻两个数变得相等需要 ai−ai−1a_i - a_{i-1}ai​−ai−1​ 个单位时间,相邻多个数可以看成差的平均数,已知平均数一定比其中一个数大,所以直接 O(n)O(n)O(n) 扫一遍。sort没有相等的,随便贪心一下。大概是把左边和右边排个序,看看把左边最大的几个和右边最小的几个交换,显然你确定了换哪些数,无论你的顺序如何答案是定了的。stringvoid sol(int x, vector <int&

2020-10-05 12:22:18 135

原创 CSP-S2考前综合强化刷题 杂题选做

POI2013 MOR-Tales of seafaring给 nnn 个点 mmm 条边无向图,边权均为 111,每次询问两个点之间是否有长度为 ddd 的路径,可以不是简单路径。因为你可重复经过一个点,所以你可以让一个距离无限加 222 也就是在不改变奇偶性的前提下无限增大。这样我们跑最短路,对于每个点我们接纳第一个偶数最短路和奇数最短路,预处理任意两点这样的两个不同奇偶性的最短路径。询问的时候,看看与它奇偶性相同的最短路径长度是不是比它短即可。Problem 2现在我们要选出一些不相交的线段

2020-10-04 18:57:28 325

原创 CSP-S2考前综合强化刷题 Day4

油箱有 nnn 个城市,每个城市都有加油站,有 mmm条单向道路,距离为 xxx 的道路需要消耗 xxx 升的汽油。请问你的车辆可以携带的最小油箱容量,使得不限加油次数的情况下,无论你在哪个城市都可以到达任意的城市。二分答案,判断所有点在不在一个环上,可以直接 Tarjan,也可以正反建边从 111 号点出发看看能不能到达所有点,可惜我少了特判。求和年度最佳挂分,我的代码怎么被删了?好吧,加上 ans = 就 AC 了。这个题麻烦在于数对是有序的,所以你要分向上和向下考虑一下,我们树上前缀.

2020-10-04 15:17:02 194

原创 CSP-S2考前综合强化刷题 Day3

欢乐求最小的 KKK 使得 K!≥N!K!K!\geq\frac{N!}{K!}K!≥K!N!​。log⁡a(M×N)=log⁡aM+log⁡aNlog⁡aMN=log⁡aM−log⁡aN\log _{a}(M \times N)=\log _{a} M+\log _{a} N \\\\\log _{a} \frac{M}{N}=\log _{a} M-\log _{a} Nloga​(M×N)=loga​M+loga​Nloga​NM​=loga​M−loga​N比较阶乘的大小可以取对数,因

2020-10-03 16:14:00 253

原创 CSP-S2考前综合强化刷题 Day2

小路灯有 nnn 个小路灯坐标 a1∼ana_1 \sim a_na1​∼an​,请你点亮 kkk 个小路灯,使得每个小路灯与距离最近的点亮小路灯的距离最大值最小。读错题好评,认为是点亮小路灯间距离最大值最小,还过样例并爆零了。这个大概是你选的小路灯一定是连续的,那么就是一个区间在滑动求区间最小值。读对后好像更简单,二分一下最大值,这样能不点亮就不点亮 check 一下。序列直接暴力~~如果一次交换是 O(1)O(1)O(1) 的,那么复杂度是调和级数,而链表会打乱数组中相邻的顺序。但是,你.

2020-10-02 15:45:29 173

原创 CSP-S2考前综合强化刷题 Day1

阿克挂 240 /dkA有 nnn 张牌,奇数属于第一个人,偶数属于第二个人,两个人轮流按扑克规则进行游戏。指定一个先手,求谁能获胜。以后看见这些简单的找规律题,一定要从下边界开始一个个手玩,不然爆零两行泪。n=2n = 2n=2 时显然谁先手谁获胜,这是一个特殊情况,下面默认 n>2n > 2n>2。当 nnn 为奇数时1 2 3 4 5A 1 3 5B 2 4当 A​ 先手时,他可以选 111,之后去盖 B​。当 B 先手时,它可以选 222,之后去盖 A。当.

2020-10-01 16:37:18 328

原创 20ZR提高组十联测 Day3

cut没啥意义吧。就是一个图一定可以分成两个点集,之间的边个数一定可以超过总边数一半。necklacewyz 神仙吊打 std。举一个 k=2k=2k=2 的栗子。000 -> 111001 -> 10000101 -> 10100如果将连续的 kkk 个相同数称为合法串,那么合法串是可以任意移动的。而且你可以同时移动初始串和目标串中的合法串,因为操作是可以逆的。所以求一下 SSS 和 TTT 的合法串个数,如果相同那么一定有方法把它们抵消掉,所以都删掉。这个过程可以用一

2020-09-13 20:17:57 204

原创 20ZR普及五连测 Day1

排列请问有多少个长度为 nnn 的排列 PPP 满足 ∣i−Pi∣≤1|i-P_i|\leq1∣i−Pi​∣≤1,答案对 998244353998244353998244353 取模。设 fif_ifi​ 为确定了前 iii 位的排列个数,那么第 iii 个位置要不然填 iii,要不然填 i−1i-1i−1,让 i−1i-1i−1 个位置填 iii,所以转移为 fi=fi−1+fi−2f_i = f_{i-1}+f_{i-2}fi​=fi−1​+fi−2​。矩阵加速一下即可。游走显然最深的那条链放

2020-09-13 19:50:48 537

原创 20ZR普专提七连测 Day2

覆盖和 CF280C 一样。因为期望的可加性,所以把子树中所有点被删转换为每个点被删的期望和。即为 ∑x1szx\sum_x \frac{1}{sz_x}∑x​szx​1​。因为卡常,所以朴素的线性求逆元会超时。糖果可以随机化一下,直接过。std 是贪心。你一定选满 ⌊n2⌋+1\lfloor\frac{n}{2}\rfloor + 1⌊2n​⌋+1 个,所以把 aaa 从小到大排序,把最后一个数留给你,然后相邻两个数分成一组选 bbb 大的那个。显然这样选保证了你的 bbb 合法,那么考

2020-09-13 15:37:30 168

原创 20ZR提高组十联测 Day2

小W与伙伴招募可以将题意转换为每天商店会对第 iii 个商品补充 bib_ibi​ 个。贪心地,优先用便宜的方案。

2020-09-06 16:56:20 265

原创 20ZR普转提七连测 Day1

机器人指令进行 d mod 360∘d \bmod 360^{\circ}dmod360∘,讨论一下,发现有四个、两个、一个一循环。然后预处理前四次操作的答案即可,注意对绝对值的处理。逛餐馆如果能确定吃哪些餐馆,当然就是不回头依次吃。那么枚举那个餐馆一定吃,在它之前的餐馆可能吃也可能不吃,二分一下吃耗时最小的多少个餐馆,套个区间前 kkk 大数的和的线段树即可。还有个堆的方法,就是每个餐馆能吃就吃,吃了后看看有没有超限制,如果超过了就弹出堆顶直到满足限制。符文师如果确定了一个数组表示对哪些

2020-09-06 16:29:11 340

原创 20ZR提高组十联测 Day1

stone将 nnn 分成尽可能少的 3k2−3k+1(k≥1)3k^2-3k+1 \quad(k \ge 1)3k2−3k+1(k≥1) 的形式。1≤Q≤1000,1≤n≤10111 \leq Q \leq 1000, 1 \leq n \leq 10^{11}1≤Q≤1000,1≤n≤1011。化简一下式子3k2−3k+1=3k(k−1)+1=6×k(k−1)2+13k^2 - 3k+1 = 3k(k-1)+1 \\= 6 \times \frac{k(k-1)}{2} + 13k2−3k

2020-08-30 18:46:41 276

原创 19ZR十一集训 最短路和生成树

HDU 4479 Shortest path求边权单调递增的最短路。将所有的边一条条加入图中,进行松弛。边权是二的幂的最短路

2020-08-25 16:39:21 168

原创 NOI 2020 部分题目题解

美食家这个数据范围,就是告诉我们这道题要矩阵快速幂。先考虑 k=0k=0k=0。把每个点拆成五个点,那么边权都为 111,然后是一个 Floyd 求最长路。转移是广义的矩阵乘法,满足结合律,可以套上矩阵快速幂。k≠0k\neq 0k​=0 我考场的做法比较暴力,直接把美食节的时间排序,分段暴力求。时间复杂度是 O(125×n3×klog⁡T)O(125 \times n^3 \times k \log T)O(125×n3×klogT),55 分走人。矩阵乘法是一个答案矩阵乘上一个转移矩阵,因为我

2020-08-21 15:44:22 584

原创 容斥原理

容斥原理公式∣⋃i=1nAi∣=∑∅≠S⊆{1,2,…,n}(−1)∣S∣−1∣⋂j∈SAj∣\left|\bigcup_{i=1}^{n} A_{i}\right|=\sum_{\emptyset \neq S \subseteq\{1,2, \ldots, n\}}(-1)^{|S|-1} \left|\bigcap_{j \in S} A_{j} \right|∣∣∣∣∣​i=1⋃n​Ai​∣∣∣∣∣​=∅​=S⊆{1,2,…,n}∑​(−1)∣S∣−1∣∣∣∣∣∣​j∈S⋂​Aj​∣∣∣∣∣

2020-08-20 20:22:01 187

原创 伸展树 Splay

原理众所周知,fhq treap 代码短小精悍,但是跑的慢。重中之重的是,LCT 与 Splay 有关。所以补一下 Splay 吧。其实 fhq treap 忘光了。fhq treap单旋和 fhq treap 类似的,Splay 也是一棵二叉搜索树,有左小右大的性质。不过 fhq treap 核心操作为合并与分裂,Splay 的核心操作为伸展。伸展即为树旋转,分为左旋 (ZAG) 和右旋 (ZIG)。如图,我们对根结点进行树旋转,可以发现左旋和右旋是对称的以左旋为栗,其实是让绿(右儿子)成为

2020-08-20 15:57:12 151

原创 多项式卷积 FFT 和 NTT

FTT多项式复数单位根FNTT原根

2020-08-13 17:20:47 805 1

原创 dp 的优化

单调队列优化斜率优化直接讲比较迷,拿 HNOI2008 玩具装箱为栗子。设 fif_ifi​ 是装好前 iii 个玩具的花费,枚举从那个玩具开始放。O(n2)O(n^2)O(n2) 的转移方程如下令 si=∑k=1icks_i = \sum_{k=1}^i c_ksi​=∑k=1i​ck​ 有fi=min⁡j=0i−1fj+(si−sj+i−j−1−L)2f_i = \min_{j=0}^{i - 1} f_j+(s_i-s_j + i - j - 1 - L)^2fi​=j=0mini−1​

2020-08-11 11:07:15 261

原创 20SD夏令营高级班 简单的网络流和费用流

模板P2756 飞行员配对方案问题求二分图最大匹配,并输出方案。建模比较简单,对于可以匹配的连一条有向边,容量设为 111。再让 SSS 和 TTT 分别与两个点集相连,容量设为 111 或 ∞\infty∞ 即可。while (~scanf("%d%d", &x, &y) && ~x && ~y){ addedge(x, y, 1); addedge(y, x, 0);}for (int i = 1; i <= n; i++) { ad

2020-08-10 08:32:46 134

原创 TJOI2017 可乐(矩阵快速幂)

Description机器人初始在 111 号城市上。机器人有三种行为:停在原地、下一个相邻的城市、自爆。它每一秒都会随机触发一种行为。现在给出图,问经过了 ttt 秒, 机器人的行为方案数是多少?1<t≤109,1≤N≤30,0<M<1001<t \leq 10^{9}, 1 \leq N \leq 30,0<M<1001<t≤109,1≤N≤30,0<M<100Solution地图很小,先建出邻接矩阵。对于停在原地,让 fi,i=1f_{i,

2020-08-07 15:33:18 113

原创 CF1097G Vladislav and a Great Legend(第二类斯特林数 + 树形依赖背包)

Description给定一棵有 nnn 个点的树。对于这棵树的非空节点集合 SSS,令 f(S)f(S)f(S) 表示包含 SSS 中所有节点的最小联通子树的边数。给定 kkk,你需要求∑∅≠S⊆[1,n]f(S)k\sum_{\emptyset \neq S \subseteq [1,n] }f(S)^{k}∅​=S⊆[1,n]∑​f(S)k2≤n≤105,1≤k≤2002 \leq n \leq 10^{5}, 1 \leq k \leq 2002≤n≤105,1≤k≤200Soluti

2020-08-07 08:38:14 152

原创 第二类斯特林数相关

第二类斯特林数将 nnn 个不同的球放到 rrr 个相同的盒子里,没有空盒。放球的方案数为 S(n,r)S(n,r)S(n,r) 或 {nr}\begin{Bmatrix}n\\r\end{Bmatrix}{nr​},称为第二类斯特林数。S(n,r)=rS(n−1,r)+S(n−1,r−1),n>r≥1S(n, r)=rS(n-1, r)+S(n-1, r-1), n>r \geq 1S(n,r)=rS(n−1,r)+S(n−1,r−1),n>r≥1考虑最后一个球怎么放。单独

2020-08-06 09:41:33 187

原创 简单的组合数学

加法原理和乘法原理一件事有若干个方法 →\to→ 加法原理。一件事有若干个步骤 →\to→ 乘法原理。

2020-08-05 20:35:55 189 1

原创 20ZR暑期联赛班 Day4

shiki一血。序列自动机 + dp。pokemonmatrix有点像逛公园的套路。求一个矩阵上,最长的等比可重路径,满足公比为整数。无限长回答 −1-1−1。其实 −1-1−1 可以特判,只要有相邻的两个比为 111 的就直接特判掉。然后是个分层图了 + bfs。...

2020-08-03 14:19:10 220

原创 20ZR暑期联赛班 Day 2

距离给定平面上的 nnn 个点, 求它们两两之间的切比雪夫距离之和。两点之间的切比雪夫距离定义为 max⁡(∣x1−x2∣,∣y1−y2∣)\max \left(\left|x_{1}-x_{2}\right|,\left|y_{1}-y_{2}\right|\right)max(∣x1​−x2​∣,∣y1​−y2​∣)。曼哈顿距离为 ∣x1−x2∣∣y1−y2∣|x_1 - x_2| |y_1-y_2|∣x1​−x2​∣∣y1​−y2​∣。那么,切比雪夫距离和曼哈顿距离是可以相互转换的。(x,y

2020-08-02 14:48:37 334

原创 20ZR暑期联赛班 Day 3

过桥可以发现,

2020-08-02 12:56:12 239

原创 北上广深算法 BSGS

又名百度谷歌算法、拔山盖世算法 其实叫大步小步算法。给定 a,p,b,a, p, b,a,p,b, 求满足 ax≡b(modp)a^{x} \equiv b\pmod pax≡b(modp) 的最小自然数 xxx。普通的 BSGS 假设了 ppp 为质数。令 x=i×m−jx = i \times m -jx=i×m−j,其中 m=⌈p⌉m = \lceil \sqrt{p} \rceilm=⌈p​⌉,注意是向上取整。那么原式为ai×m−j≡b(modp)a^{i \times m - j} \eq

2020-08-02 12:28:33 278

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除