题解1178f cf f1

洛谷P4824题解

题面 题意:给出字符串 s 和 t,每次操作将 s 中出现的第一个 t 删去,直到不能删为止。求最后的串。 |s|<=1e6 题解:hash 做法。(此题也有 kmp 和权值线段树做法) 因为涉及到删除操作,所以我们要动态的实现这个过程。所以考虑开一个栈来存储当前留下的字符。 然后每有一个字符入栈, ......
题解 P4824 4824

洛谷P7469题解

题面 题意:有两个字符串 a 和 b,问 b 中有多少个本质不同子串可以由 a 删除若干个字符得到。 |a|,|b|<=3000 题解:字典树(这个题做法很多,后补)。 把字符串 b 的每个子串打到字典树上。 然后因为 3000^2*26 这个东西比较大,所以不能用 nxt[id][26] 来存储, ......
题解 P7469 7469

CWOI 2023.05.04 题解

mzx 的动态规划杂题选讲。sto ARC153 D - Sum of Sum of Digits P7152 [USACO20DEC] Bovine Genetics G CF1542E2 Abnormal Permutation Pairs (hard version) 题意 给定 $n,m$, ......
题解 CWOI 2023 05 04

P3809 【模板】后缀排序 题解

一、题目描述: 给你一个长度为 $n$ 的字符串 ,由大小写英文字母和数字组成。请将这个字符串的所有非空后缀按字典序排序,顺序输出后缀的第一个字符在原串中的位置,编号为 $1$ 到 $n$。 二、解题思路: 板子题,我就不写思路了。我用的是 $SA$,$DC3$ 还没学。时间复杂度 $O(nlogn ......
题解 后缀 模板 P3809 3809

CF27E (反素数)(2000)

###原题点这 ###前置知识点:反素数 反素数: 若 N $\le$ $2^{31}$ 1 ~ N 中的反素数,就是 1 ~ N中约数个数最多的数中 最小 的一个。 1 ~ N 中任何数的不同质因子都不会超过 10 个且所有质因子的质数都不会超过30。 x$\in$[1, N],x 为反素数的必要 ......
素数 2000 27E CF 27

CF803F(莫比乌斯反演 + 容斥) (2000)

###原题 ###题意: 给定一个n个数的序列,问你有多少个子序列的 gcd = 1。(n $\le$ $10^{5}$) ###思路: 序列一共有n个数,则有 $2^{n}$ - 1个子序列。 显然答案为 $2^{n}$ - 1 减去 gcd > 1 的子序列的个数。 而问题来了——— gcd > ......
2000 803F 803 CF

CF1404 div.1做题记录

有趣的一场 A CF题面 因为所有长度为 $k$ 的区间都要满足条件,所以对于所有 $i\le n-k$,都有 $s_i=s_{i+k}$。随便判一下就没了。 点击查看代码 #include<bits/stdc++.h> #define ull unsigned long long #define ......
1404 div CF

cf1823

A. A-characteristic 题目链接 由于出现数字只可能是1或-1,那么假设数列全为-1,依次枚举1出现的个数,可以得出结论不是所有数字都有答案的,由于会有重复数字出现,只需要枚举1的个数x<=n/2即可。 // Problem: A. A-characteristic // Conte ......
1823 cf

CF1325D(异或构造)1700

###原题链接 题目大意: 给定整数 u 和 v (0$\leq$u,v$\leq$$10^{18}$ )试构造长度最短的数组,使得数组内所有元素的异或和为 u,加和为 v。 如果有解,输出两行,第一行输出一个整数 n,第二行输出 n 个非负整数,表示数组里的元素。多解输出任意一组即可。如果无解,输 ......
1325D 1325 1700 CF

CF708C Centroids(换根dp)

题意: 给定一颗树,你有一次将树改造的机会,改造的意思是删去一条边,再加入一条边,保证改造后还是一棵树。 请问有多少点可以通过改造,成为这颗树的重心?(如果以某个点为根,每个子树的大小都不大于$\dfrac{n}{2}$,则称某个点为重心) 思路: 是今天遇到的一道有意思的换根dp呃呃。 从题意来看 ......
Centroids 708C 708 CF

PA 2022 部分题解

[PA 2022] Wielki Zderzacz Termionów 有 $n$ 个球,每个球有 A、B 或 C 三种颜色。开始时你将每个 C 涂成 A 或 B。之后的每次操作,你可以选择相邻的两个 A 合并为一个 B,或选择相邻的两个 B 合并为一个 A。求将 C 涂色的方案数,满足你能够通过若 ......
题解 部分 2022 PA

题解 ARC139D【Priority Queue 2】

problem 给定 $n,m,k,x$,给定了一个有 $n$ 个元素的可重集合 $a_i\in [1,m]$,会进行 $k$ 次如下操作:选择一个数 $y\in[1,m]$ 加到 $a$ 中,并把 $a$ 中第 $x$ 小的元素删除。 有 $m^k$ 种情况,对于每种情况的价值定义为最后 $a$ ......
题解 Priority Queue 139D ARC

CF1190 div.1板刷记

经过上一次的vp,发现自己还有很大不足,所以还在板刷div.1。 A CF题面 模拟即可。 点击查看代码 #include<bits/stdc++.h> #define ull unsigned long long #define int long long #define pii pair<int ......
板刷 1190 div CF

关于容斥原理 / P5505题解

发现很多题解连容斥原理的“钦定”和“至少”的区别都讲不清楚,误导萌新,所以写一下这两个东西的区别 “钦定”这个东西是会算重的,而“至少”不会。 举个例子吧,比如 $1\ 2\ 3$ 三个位置不合法,如果我说“钦定”两个位置不合法,那么这里计算方案的时候这个不合法的方案会被计算三次,分别是钦定 $1\ ......
题解 原理 P5505 5505

[JOI 2016 Final]断层 题解

题目链接 首先发现斜着平移比较难处理,所以考虑将平面逆时针旋转 $45°$。 接着发现风化也不好处理,但是风化的一定不会作为答案,所以我们可以离线,然后倒着处理操作,上升变为下降。 我们发现每个初始 $0$ 点最后的坐标就是它正着做时初始的坐标,且每次操作都只会将连续一段点的 $x,y$ 坐标修改。 ......
题解 断层 Final 2016 JOI

【23.05.03】好题题解

好题题解 A 题目大意: 计算一个项数为 $n$ 的多项式除以 $x^3-x$ 的余数多项式。 数据范围: 对于 $100%$ 的数据: $2 \leq n \leq 2 \times 10 ^ 5$ 解题分析: 水题,直接多项式除法模拟即可。 需要注意细节。 AC Code: # include ......
题解 23 05 03

【题解】ABC300 F,G

F.More Holidays 题目分析: 考虑刻画一下我们选择是什么样子的。 考虑我们最后选择的 $T$ 中的一段一定是形如:一个完整的 S 选择一个后缀 $+$ 若干个完整的 S $+$ 一个完整的 S 的前缀。 这样的话就启示我们直接枚举这个前后缀选择的是什么,然后就可以很快算出来了,但是枚举 ......
题解 ABC 300

[POI2005]SAM-Toy Cars 题解(贪心+堆)

题面 首先考虑一个贪心策略:当地板已经放满需要取出一个时,取下一次使用时间 $nxt$ 最晚的那个。 所以我们只需要一个可以快速求出一个集合中 $nxt$ 最小的点并删除,插入新点的数据结构,这里很容易想到堆。 代码很简洁,注意数组的下标是位置还是颜色(考场 100 pts 到 0 pts)。 co ......
题解 SAM-Toy 2005 Cars POI

Cashier 题解

题目传送门 一道贪心题。 我们可以记录每一位客人离开的时间,当下一位客人来临时,他们之间空闲的时间就是我们休息的时间。 for (int i = 1; i <= n; i++) { int t, l; cin >> t >> l; ans += (t - endt) / a; endt = t + ......
题解 Cashier

Valhalla Siege 题解

题目传送门 一道二分题。 先观察数据范围,$1\le n,q\le 200,000$,显然需要 $O(n\log n)$ 的复杂度。且 $1\le k_i\le 10^{14}$,需要开 long long。 我们需要二分到第一个血量大于伤害值的武士的位置,前面的武士都死了。而在 C++ 算法库中, ......
题解 Valhalla Siege

[ABC213D] Takahashi Tour 题解

题目传送门 一道 dfs 序题。 题目中高桥每次只会去最小的那个点,所以要先对整张图进行排序。 for (int i = 1; i <= n; i++) sort(g[i].begin(), g[i].end()); 然后考虑 dfs。高桥不会走重复的点,所以我们可以开一个 vis 数组进行标记。然 ......
题解 Takahashi 213D Tour ABC

[蓝桥杯 2017 国 C] 合根植物 题解

题目传送门 一道并查集模板题。 没什么好说的,先给个并查集模板,神犇可以直接跳过。 查找根: int find_root(int n) { if (fa[n] == n) return n; return fa[n] = find_root(fa[n]); } 合并: void merge(int ......
蓝桥 题解 2017

Codeforces Round 869 (Div. 2) A-D题解

比赛地址 A. Politics 题意:有n个人对m个决案进行投票,对于每一个决案如果票数相同则所有人都离场,反之票数少的一方离场,现在提前知道了每个人的意见,让一些人参与投票,在保证第一个人不离场的情况下最终剩余人数最多是多少 Solution 把和第一个意见不同的给去掉就行了 void solv ......
题解 Codeforces Round 869 A-D

CF1416 Div.1 VP记

好久没打CF了,感觉写代码能力有所下降,vp一场看看,差点被阻击没了。 A CF题面 先考虑将某一个数字提出来,可以发现如果这个数字要对答案造成贡献,那么 $k$ 最小为没有该数字的区间中最长的区间长度加一。 点击查看代码 #include<bits/stdc++.h> #define ull un ......
1416 Div CF

CF1034D Intervals of Intervals

简要题意 给定 $n$ 个区间组成的序列,定义它的一个连续段的价值为这个段内所有区间的并覆盖的长度。求价值前 $k$ 大的段的价值和。 数据范围:$1\le n\le 3\times 10^5, 1\le k\le \min{\frac{n(n-1)}{2}, 10^9}$。 题解 考虑一个经典问题 ......
Intervals 1034D 1034 CF of

AT_abc106_d [ABC106D] AtCoder Express 2 题解

题目传送门 解题思路 区间 $dp$。 划分阶段:以左右城市之间的列车数量为阶段。 状态表达:设 $f_{i,j}$ 为城市 $i$ 与城市 $j$ 之间的列车数量。 状态转移: 由图可知,城市 $l$ 与城市 $r$ 之间的列车数量,就是城市 $l$ 与城市 $r-1$ 之间的列车数量与城市 $l ......
题解 106 AtCoder Express AT_abc

CF1817C Similar Polynomials 题解

可能更好的阅读体验 题目传送门 Div.1 C 拉格朗日差值,赛时开香槟。 题目大意 给定 $d$ 次两个多项式 $A(x),B(x)$。求 $s$,使得 $B(x)\equiv A(x+s) \pmod {10^9+7}$ ,保证 $s$ 存在。 给出多项式的形式为给出 $x=0,1,\cdots ......
题解 Polynomials Similar 1817C 1817

CF思维体操

Plus and Multiply Luogu CF 题意简述: $\qquad$给定 $n,$ $a,$ $b$,要求判断 $n$ 能不能由 $a$ 通过若干次 $\times a$ 或者 $+b$得到。 解题思路: $\qquad$我们首先应该找到能由上述操作得到的数的普遍形式。 $$对于n = ......
体操 思维

P5824 十二重计数法 题解

P5824 十二重计数法 题解 $\text{I}$:小球不同,盒子不同 每个小球都有 $\large m$ 个盒子可选择,根据乘法原理相乘。因此答案为 $\large m^n$ 。 $\text{II}$:小球不同,盒子不同,每个盒子至多装一个小球 每个盒子不能装多个小球,所以第一个小球有 $\l ......
题解 P5824 5824

题解 CF1325E【Ehab's REAL Number Theory Problem】

problem 给一些数,每个的因数个数不超过 7,求最少选出多少个,使得乘积为完全平方。无解输出 −1。$n=10^5,V=10^6$。 solution 如果一个数有三个不同的质因子,那么它至少有 8 个约数;如果一个数有平方因子,我们可以除掉。 所以任何数都可以写成下面三种形式:($p,q$ ......
题解 Problem Number Theory 1325E