- 博客(49)
- 收藏
- 关注
原创 CF26D Tickets(dp + 组合数)
Description 你有 kkk 张 101010 元的钞票,有 nnn 个客人手持 101010 元的钞票,还有 mmm 个客人手持 202020 元的钞票。n+mn+mn+m 个客人会随机排队买票,求所有的客人都能找开钱的概率。 Solution 有两个方法,组合数和 dp。 其实这道题一眼看上去是卡特兰数或组合数,所以转换一下,你从 (k,0)(k,0)(k,0) 出发,可以向上走也可以...
2020-02-29 20:27:42 146
原创 CF590C Three States(01 BFS)
Description 给定一个 n×mn \times mn×m 的地图,. 为荒地,#为石头,数字为国家。有三个国家,求至少将多少荒地修为路才能让三个国家联通,路可以免费在国家中修。如果没有方案回答 −1-1−1。 Solution 转换一下,在国家外部走有代价,在内部无代价,有的点可能是一个枢纽。 可以发现,两个图的枢纽分别为 111 和 444。 以 111 为枢纽,那么有三个点,这三个...
2020-02-29 14:52:34 229
原创 BZOJ2118 墨墨的等式(同余最短路)
Description 给定 a1∼ana_1 \sim a_na1∼an 和 BBB 的取值范围 [l,r][l,r][l,r]。求有多少个 BBB 满足有非负整数 x1∼xnx_1 \sim x_nx1∼xn 使得 B=∑i=1naixiB = \sum_{i = 1}^n a_ix_iB=∑i=1naixi。 1≤n≤12,0≤ai≤5×105,1≤l≤r≤10121 \leq...
2020-02-26 10:19:59 259
原创 JZOJ4848 永恒的契约(单调栈)
Description 有 nnn 块石头,排成一个环,第 iii 块石头为高度 aia_iai。两块不同的石头 iii 和 jjj 能够互相看到,当且仅当它们在环上的两条路径中有至少一条路径上的石头高度都不大于 min{ai,aj}\min \{a_i,a_j \}min{ai,aj}。求有多少对石头能互相看到。 1≤n≤106,1≤ai≤1091 \leq n \leq 10^6...
2020-02-23 19:47:40 245
原创 Gym100204C Fibonacci Subsequence(dp + hash + 卡常 + 序列自动机)
Description 给定一个长度为 nnn 的序列 aaa,求它的最长斐波那契子序列。空间限制 64MB。 1≤n≤3000,1≤∣ai∣≤1091 \leq n \leq 3000, 1 \leq |a_i| \leq 10^91≤n≤3000,1≤∣ai∣≤109。 Solution 可以发现确定了子序列的前两项,那么后面的可以推出来。所以令 fi,j(i<j)f_{i,j} \q...
2020-02-22 18:41:15 162
原创 GDOI2018 Day1 T2 密码锁(贪心+差分)
Description 给定 a[1∼n],ai∈[0,m−1]a[1 \sim n], a_i \in [0,m-1]a[1∼n],ai∈[0,m−1],每次操作可以在模 mmm 意义下对任意一个区间 [l,r][l,r][l,r] 整体 +1+1+1 或 −1-1−1,求最少几次操作可以使所有数字变成 000。 Solution 在 nnn 个数前后补上 000,进行在模意义下的差分,有差...
2020-02-22 12:49:20 223
原创 字典树 Trie
Trie 是一棵树,用边代表字母,从代表空串的根节点到一个结点路径上的字母构成了一个字符串。而从根节点到标有数字的点是保存的字符串 A 、to、 tea、 ted、 ten、 i、 in、 inn 。 Trie 是一个 确定有限状态自动机,是 AC 自动机的一部分。它的实现分成插入一个字符串,查找一个字符串,删除一个字符串三部分。 visxvis_xvisx 为 xxx 是否在 Trie 中...
2020-02-21 14:34:36 86
原创 字符串匹配 Kmp
给定一个主串 ttt 和模式串 ppp,求 ppp 在 ttt 中出现的下标。 我会暴力! char t[N], p[N]; scanf("%s%s", t + 1, p + 1); for (int i = 1; i <= strlen(t + 1); i++) { bool f = 1; int k = i; for (int j = 1; j <= strlen...
2020-02-21 13:27:05 129
原创 51Nod1115 最大M子段和V3 (可撤销贪心 + 堆 + 双向链表)
Description 给的一个长度为 nnn 的环形序列 aaa,求从中选 mmm 个可以为空的子段的最大和。 2≤n,m≤105,−109≤ai≤1092 \leq n, m \leq 10^5,-10^9 \leq a_i \leq 10^92≤n,m≤105,−109≤ai≤109。 Solution 先想到的可能是断环为链后 dpdpdp,fi,jf_{i,j}fi,j 表示划分了 ...
2020-02-21 09:17:05 256
原创 ZR1012 Zbox loves keyboard (dp)
Description 文本框中有 xxx 个字符。每两秒可以进行全选、复制、粘贴。每一秒可以进行输入、退格。求多少秒才能让文本框有 nnn 个字符? 1≤n,x≤1061 \leq n, x \leq 10^61≤n,x≤106 Solution 若没有退格一项,则为一道非常水的 dp 题。其中全选再粘贴的操作没有必要。 若加入退格,发现退格只有两个,全部删或删一个。全部删只用一次,而且在开头用...
2020-02-20 11:21:13 147
原创 ZR954 分组(排序 dp)
Description 共有 nnn 人报名了招聘,第 iii 个人的工作经验为 wiw_iwi,薪水为 sis_isi。要招聘 2×k2 \times k2×k 个人,并将这些人分为 kkk 组,每组两个人。一个人为组长,而另一个人为组员。对于每个组,要求组长的工作经验不小于组员的工作经验。 每个应聘者会有一个意愿 pip_ipi,表示他应聘的岗位。若 pi=1p_i = 1pi=1,则...
2020-02-20 11:18:40 133
原创 ZR864 杜老师的拷问 (构造)
Description dls 在心中生成了 nnn 个正整数,给出了两两数字的和共 n×(n−1)2\frac{n \times (n-1)} {2}2n×(n−1) 个,求所有可能的方案。 1≤n≤300,1≤ai+aj≤2×1081 \leq n \leq 300, 1 \leq a_i + a_j \leq 2 \times 10^81≤n≤300,1≤ai+aj≤2×108 Sol...
2020-02-20 11:17:46 117
原创 ZR860 扁鹊再世蔡徐坤 (贪心 + 堆)
Description 有 nnn 位病人,坤坤有 V mLV \ mLV mL 镇静剂。第 iii 位病人的紧急程度为 aia_iai,镇静所需剂量至少为 bib_ibi。若选了 kkk 个病人 c1∼ckc_1 \sim c_kc1∼ck,则病人 cjc_jcj 将得到 acj∑i=1kacj×V\frac{a_{c_j}}{\sum_{i=1}^k a_{c_j...
2020-02-20 11:16:40 204 1
原创 ZR859 坤坤的篮球场 (单调队列)
Description 求一个 n×mn \times mn×m 的网格图中,面积最大的矩形,满足平均值大于 kkk。 1≤n,m≤300,1≤ai≤2×1051 \leq n, m \leq 300, 1 \leq a_i \leq 2 \times 10^51≤n,m≤300,1≤ai≤2×105 Solution 将输入的矩阵每个元素减去 kkk ,转换成矩阵之和为正。先预处理二维前缀和。...
2020-02-20 11:16:38 152
原创 TC SRM421 R1 Div1 TeamManagement(树形 dp + 计数 dp)
Description 有 nnn 个球员,有的球员对俱乐部忠诚,有的球员对俱乐部不忠诚。有的球员是朋友,朋友的关系是一棵无根树,具有对称性但不具有传递性,每个球员最多有三个朋友。想购买一个球员,需要满足这个球员是忠诚的或这个球员的朋友被购买。俱乐部想购买 kkk 个球员,求每个球员被买到的概率。 1≤k≤n≤501 \leq k \leq n \leq 501≤k≤n≤50 Solution 有...
2020-02-20 11:12:34 141
原创 UVA1630 Folding(区间 dp)
Description 求一个字符串 SSS 的最短可嵌套压缩的方案。如 AAAAAAAAAABABABCCD 最短为 9(A)3(AB)CCD。 1≤∣S∣≤1001 \leq |S| \leq 1001≤∣S∣≤100。 Solution 对于一个字符串,令 fi,jf_{i,j}fi,j 为 [i,j][i,j][i,j] 的最短压缩长度,有三个压缩。 原串形式,将 fi,jf_{i,j...
2020-02-20 11:12:30 127
原创 POJ2152 Fire(树形 dp)
Description 给定一棵无根有权树,每个点建消防站都有一定代价 ccc,每个点都有一个限制 limlimlim,表示离它最近的消防站的最大距离。求让所有点安全的最小代价。 Solution 设 fi,jf_{i,j}fi,j 为以 iii 为根的子树全安全,且 jjj 管理 iii 的最小代价,bestibest_ibesti 为以 iii 为根的子树全安全的最小代价,结果显然为 be...
2020-02-20 11:08:59 124
原创 Gym100851K King's Inspection(哈密尔顿回路)
Description 给你一张 nnn 个点 mmm 条边的有向图,求这张图 1→11 \to 11→1 的汉密尔顿回路。 1≤n≤105,1≤m≤n+201 \leq n\leq 10^5, 1 \leq m \leq n + 201≤n≤105,1≤m≤n+20 Solution 哈密尔顿回路是一个 NP 完全问题,复杂度是指数级的,但是 1≤m≤n+201 \leq m \leq n +...
2020-02-20 11:08:01 242
原创 CF1304D Shortest and Longest LIS (最长单调序列构造)
Description 有一个 1∼n1\sim n1∼n 的排列,给定 n−1n-1n−1 个大于号或小于号描述相邻两个数的大小关系。请你构造两个符合要求的排列,分别满足 LIS 最短和 LIS 最长。LIS : 最长上升子序列。 1≤n≤2×1051 \leq n \leq 2 \times 10^51≤n≤2×105。 Solution 考虑最短的 LIS。因为小于号产生的上升是不可避免的,...
2020-02-20 11:06:46 132
原创 CF1290C Prefix Enlightenment(拆点并查集)
Description 给定一个长度为 nnn 的 01 串 SSS,和 kkk 个 SSS 的下标子集,且任意三个子集的交集为空集。一次操作可以选择一个子集,将子集中的下标对应的 SiS_iSi 取反。令 mim_imi 为让 S1∼i=1S_{1 \sim i} = 1S1∼i=1 的最少操作次数,求出所有的 mim_imi,保证有方案。 1≤n,k≤3×1051 \leq n,k \...
2020-02-20 11:05:31 151
原创 CF1209D Cow and Snacks(并查集)
Description 有 nnn 个零食,kkk 个客人,每个客人喜欢两个零食。一个客人会将剩下的零食中他喜欢的全部吃掉,如果一个也吃不到那么这位客人会不开心。你可以安排客人吃零食的顺序,求至少有多少客人不开心。 2≤n≤105,1≤k≤1052 \leq n \leq 10^5, 1 \leq k \leq 10^52≤n≤105,1≤k≤105。 Solution 因为一个客人可以吃两个零食...
2020-02-20 11:03:59 166
原创 CF914D Bash and a Tough Math Puzzle (线段树二分)
Description 平面坐标系中有 nnn 个物品 (x1∼n,y1∼n)(x_{1\sim n},y_{1\sim n})(x1∼n,y1∼n),从 (x1,y1)(x_1,y_1)(x1,y1) 走到 (x2,y2)(x_2,y_2)(x2,y2) 所需的时间为 (x1−x2)2+(y1−y2)2(x_1 - x_2)^2 + (y_1 - y_2)^2(x1−x2)2+(...
2020-02-20 11:02:43 102
原创 CF8C Looking for Order(状压dp)
Description 平面坐标系中有 nnn 个物品 (x1∼n,y1∼n)(x_{1\sim n},y_{1\sim n})(x1∼n,y1∼n),从 (x1,y1)(x_1,y_1)(x1,y1) 走到 (x2,y2)(x_2,y_2)(x2,y2) 所需的时间为 (x1−x2)2+(y1−y2)2(x_1 - x_2)^2 + (y_1 - y_2)^2(x1−x2)2+(...
2020-02-20 11:01:25 157
原创 AT693 文字列 (计数 dp)
Description 构造一个小写字母构成的字符串,使小写字母 iii 出现了 freqifreq_ifreqi 次,且相同字母不能相邻,求方案数并对 109+710^9 + 7109+7 取模。 1≤freqi≤101 \leq freq_i \leq101≤freqi≤10。 Solution 计数 dp,先找出所有 freqi>0freq_i > 0freqi>0 ...
2020-02-20 10:59:52 121
原创 AT690 木 (树形 dp + 计数 dp)
Description 给定一棵大小为 nnn 的树,用另外 nnn 个点加边构造出这棵树,要求构造时所被边连到的点联通,求有多少连边顺序。 1≤n≤10001 \leq n \leq 10001≤n≤1000。 Solution 连边大致有从上向下和从下向上两个顺序。由于是无根树,可以枚举一个点作为根节点,让所有的边只能从根节点开始往下连,即为从根节点开始生长到叶子节点。 设 fxf_xfx...
2020-02-20 10:58:44 100
原创 CF176B Word Cut(计数 dp)
Description 求经过 kkk 次将 SSS 划分成两部分并交换使 SSS 串变成 TTT 串的方案数并对 109+710^9 + 7109+7 取模。 2≤∣S∣≤1000,0≤k≤1052 \leq |S| \leq 1000, 0 \leq k \leq 10^52≤∣S∣≤1000,0≤k≤105 Solution 可以发现,每次可以将原串变为其他串,也可以从其他串变为原串。无论多...
2020-02-20 10:57:04 339
原创 CF17C Balance(序列自动机 + 计数 dp)
Description 给定一个由 a b c 构成的字符串 SSS,可以选择任意两个相邻字符,有第一个覆盖第二个或用第二个覆盖第一个。求能变出多少不同的字符串,a b c 的个数两两差 ≤1\leq 1≤1,对 511239875112398751123987 取模。 1≤∣S∣≤1501 \leq |S| \leq 1501≤∣S∣≤150。 Solution 序列自动机 + dp。令变出的字...
2020-02-20 10:56:33 263
原创 CSPS 2019 Day2 T1 Emiya 家今天的饭(容斥 + 计数 dp)
Description 给定一个 n×mn \times mn×m 的矩阵,每一行最多选一个数,每一列可以选若干个数,但是每一列选的数不能超总数的一半。求有多少个不同的方案数。 Solution 容斥 + 计数 dp。ans=ans =ans= 全部的方案数 −-− 超过 ⌊k2⌋\lfloor \frac{k}{2 }\rfloor⌊2k⌋ 的方案数。 令 sumisum_isumi 为 ...
2020-02-20 10:55:51 158
原创 CSPS 2019 Day1 T2 括号树(树形 dp + 计数 dp + 括号匹配序列)
Description Link Solution 树形 dp。 合法括号串本质上有两个 单独串,如 ()。单独串仅有一队括号构成,如 ()() 有两个单独串。 嵌套串,如 (()())。嵌套串的定义大于单独串,如 (()()) 为一个嵌套串,且它的子串中没有单独串。 性质 1:单独串和嵌套串可以与其他的合法括号串匹配。 性质 2:如果 有(,那么等待之后的 )。如果 ) 前没有 ) 与它匹...
2020-02-20 10:55:34 271
原创 P1829 Crash 的数字表格(莫比乌斯反演)
Description 求 ∑i=1n∑j=1mlcm(i,j) \sum_{i=1}^{n}\sum_{j=1}^{m} lcm(i,j) i=1∑nj=1∑mlcm(i,j) Solution 原式等价于 ∑i=1n∑j=1mijgcd(i,j) \sum_{i=1}^{n}\sum_{j=1}^{m} \frac{ij}{gcd(i,j)} i=1∑nj=1∑mgcd(i,j)ij...
2020-02-20 10:55:00 85
原创 ZR1001 欢乐 ABC(map 维护前缀和)
Description 求字符串 SSS 中有多少个子串,满足 AAA、BBB、CCC 出现次数相等。 1≤∣S∣≤1061 \leq |S| \leq 10^61≤∣S∣≤106 Solution 若有 AAA、BBB、CCC 出现次数的前缀和。对于一个区间 [l,r][l,r][l,r],若满足下述条件,则合法。 Ar−Al−1=Br−Bl−1⟹Ar−Br=Al−1−Bl−1A_r - A_{...
2020-02-20 10:54:07 135
原创 GZOI 2019 旅行者(二进制分组 + Dijkstra)
Description 给你 nnn 个点 mmm 条边的有向图,求给定 kkk 个特殊点两两之间最短路的最小值。TTT 组询问。 1≤T≤5,1≤k≤n≤105,1≤m≤5×105,1≤z≤2×1091 \leq T \leq 5,1 \leq k \leq n \leq 10^5,1 \leq m \leq 5 \times 10^5,1 \leq z \leq 2 \times 10^91≤...
2020-02-20 10:52:24 165
原创 NOIp 2017 Day2 T2 宝藏(状压 dp)
Description Link Solution 看到这个数据范围就知道是状压 dp。而且 4n×n4^n \times n4n×n 的都可以过。 如果走到了点 xxx,接下来可以走两个点 aaa 和 bbb。可以直接到 bbb,也可以先到 aaa,绕一大圈再到 bbb。对于 bbb 的话两个走法深度不同。 所以状态好设计,令 fd,maskf_{d,mask}fd,mask 为深度为 ddd...
2020-02-20 10:51:28 122
原创 无旋平衡树 fhq treap
普通平衡树 您需要写一种数据结构,来维护一些数,其中需要提供以下操作: 插入 xxx 数 删除 xxx 数(若有多个相同的数,因只删除一个) 查询 xxx 数的排名(排名定义为比当前数小的数的个数 +1+1+1。若有多个相同的数,因输出最小的排名) 查询排名为 xxx 的数 求 xxx 的前驱(前驱定义为小于 xxx,且最大的数) 求 xxx的后继(后继定义为大于 xxx,且最小的数) FHQ...
2020-02-20 10:51:06 453
原创 AT3913 XOR Tree(边权转点权 + 状压 dp)
Description 给定一棵 nnn 个点的树,每次操作可以选择两个点 xxx 和 yyy ,让 x→yx \to yx→y 的路径上的边权异或上一个随意的非负整数。求至少几次操作才能让树的边权都为 000。 1≤n≤2×105,0≤ai≤151 \leq n \leq 2 \times 10^5, 0 \leq a_i \leq 151≤n≤2×105,0≤ai≤15。 Solution ...
2020-02-20 10:49:47 193
原创 AT4536 Matching(状压 dp)
Description 有 nnn 个男生和 nnn 女生,给定一个 n×nn \times nn×n 的 01 矩阵表示每对男女能否配对。求不同的配对方案数,每个人必须与一个异性配对。 1≤n≤211 \leq n \leq 211≤n≤21。 Solution 数据范围告诉了我们状压 dp。 令 fi,maskf_{i,mask}fi,mask 为前 iii 个男生配对的女生状态为 mask...
2020-02-20 10:49:15 364 1
原创 简单数论
快速幂 快速幂是对倍增思想的应用,可以以 log\loglog 级别的复杂度求 aka^kak。 若 kkk 为偶数,则 ak=ak2×ak2a^k = a^{\frac{k}{2}} \times a^{\frac{k}{2}}ak=a2k×a2k。 若 kkk 为奇数,则 ak=a1×ak−1a^k = a^1 \times a^{k-1}ak=a1×ak−1。奇数减一为偶数。 int ...
2020-02-20 10:48:43 251 1
原创 树上启发式合并 dsu on tree
dsu on tree 用来解决树上问题。可以在 O(nlogn)O(n \log n)O(nlogn) 中完成对静态的子树统计。但是,不支持修改,只能对子树统计,不能链上统计。 我们来看一个问题。有一棵树,每个点有一个权值。求这棵树的每一棵子树的众数权值之和,如果有多个众数那么都要统计。先考虑 O(n2)O(n^2)O(n2) 的暴力,对于每一棵子树,遍历这棵子树的所有点,用一个桶记录每一个数...
2020-02-20 10:48:33 158
原创 马拉车 Manacher
Manacher,人称马拉车。是用来查找一个字符串的最长回文子串的线性算法。 对于一个子串长度有可能是偶数也可能是奇数。为了实现简单与准确,对原串更改。如 ababca 为 $#a#b#a#b#c#a#,令新串为 sss。 定义 pip_ipi 为以 iii 为对称中心的最长回文半径。刚刚栗子的 ppp 为 $ # a # b # a # b # c # a # 1 1 2 1 4 1 4 1...
2020-02-20 10:48:28 468
原创 Mobius 莫比乌斯反演
积性函数 若 gcd(x,y)=1\gcd(x,y)=1gcd(x,y)=1 且 f(xy)=f(x)f(y)f(x y)=f(x) f(y)f(xy)=f(x)f(y) ,则 f(n)f(n)f(n) 为积性函数。 狄利克雷卷积 定义两个数论函数 f,gf,gf,g 的狄利克雷卷积为 (f∗g)(n)=∑d∣nf(d)g(nd)∗≠× (f \ast g)(n)=\sum_{d\mid n}...
2020-02-20 10:48:22 207
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人