随笔分类 - 题解
摘要:略带一点思维吧。 个人认为比 B 难想。 先来考虑弱化版的题面: Case 1 如果 串和 串都没有字母 C,如何判断是否有解? 观察操作,我们能发现这个操作的本质实际上是让一个位于前面的字母 A 挪到其后面的任意的位置,并且前后两个 A 的相对位置不会发生改变。 所以,如果
阅读全文
摘要:见到有单调性、有限制的区间问题,很自然地就会想到用尺取去做。 先按工资升序排序,然后套上尺取就行了。 不会尺取的可以根据这道题去学。 时间复杂度 。 #include<cstdio> #include<algorithm> #define ll long long usi
阅读全文
摘要:简单题。CF 评分才 *1600。 可以直接先把 拆成两部分。 \[\begin{aligned} \large a&=\oplus^n_{i=1}p_i\ \large b&=\oplus^n_{i=1}\oplus^n_{j=1}\ \ \ (i\bmod j)\ \large
阅读全文
摘要:设 为 中满足题意的数的数量。 显然答案为 。 注意到 能直接暴力求出来。 那么就可以先把 范围内的所有质数求出来,然后所有数跑一遍,每个数都去旋转得出所有数后判断是否均为质数,记录下来。
阅读全文
摘要:简单解析几何。 做这道题之前,你需要知道: 1. 根据两点求直线一般式。 2. 根据两条直线求交点坐标。 这里直接丢公式了,百度上也有证明过程,自己推导难度也不大。 1. 若两点坐标为 ,则直线方程为: ,其中 $A=y_2-y_1,B=
阅读全文
摘要:为了尽可能满足父母亲的要求,我们应该取两个字符串的最长公共子序列。 [洛谷模板题](https://www.luogu.com.cn/problem/P1439) 设 为 串匹配到第 位, 串匹配到第 位时的最长公共子序列长度。 则易知 $dp_{
阅读全文
摘要:根据题意,发现我们要维护一个身高递减的序列。 因此,我们可以直接使用单调栈维护第 个人能看到的人数即可。 答案就是当前栈内的元素数量。 注意应先输出答案再将当前高度入栈。 ```cpp #include int n; int h[100010]; int st[100010]; int to
阅读全文
摘要:本题二分 + 搜索。 我们可以先二分出 可能的值,再用搜索检验这个答案是否满足要求。若满足,左端点右移,否则右端点左移。 至于搜索可以用记搜加速。 注意输出要换行,否则会 WA。 ```cpp #include #include int n,m,t; char map[20][20]; in
阅读全文
摘要:简单题,但是我考场写炸了。 。 我们读入的时候,先开两个数组 来记录当前这个点是否为某条线段左端点或右端点。 我们发现,每一条线段都是连续的,因此可以直接差分记录当前这个点能否走到。 然后你提交上去发现你能过。 实际上这种做法是假的。 为什么呢? 如
阅读全文
摘要:简单题。 考虑 `-1` 的情况,即为 $n^2 #include #define ll unsigned long long ll n,m; ll ans=1llm) ans=min(ans,a*b); } printf("%llu",ans); } return 0; } ```
阅读全文
摘要:## 前言 这个东西还是 lsz 提醒我的() cj 开了2G,,, ### day -114514 班主任叫我去找 cj,cj 说她发现 GDKOI 的时候报名时间过了() 最后好像还是有了名额。 ### day -2 被政治老师抽背政治,不会,当场寄掉,喜提罚抄提纲+重背。 ### day -1
阅读全文
摘要:这道题是一对兄弟在几个夜晚里想出来的idea: 【哥:[KoSaking](https://www.luogu.com.cn/user/531275),弟:[osfly](https://www.luogu.com.cn/user/339299)】 弟:哥,这是什么?(指着哥哥远古小本子上的一行字)
阅读全文
摘要:典型到不能再典型的区间 dp 了。 观察四种操作,考虑到加一个数和删一个数的情况相同,所以无非就是: 1. 删一个数。 2. 改一个数。 设 为让区间 对称(变成回文串)的最少次数。 可以很快地得出状态转移方程: 情况 :如果 ,则
阅读全文
摘要:注意到 实在是小到不行,我们可以直接采用比较暴力的做法。 ~~(嗯,可能算比较暴力吧~~ 很简单,找环,然后把环里的所有点全部压进 `dijkstra` 的优先队列就行了。 找环最坏 遍跑满的 `dfs`,最短路是 的,最坏时间复杂度为 ,稳
阅读全文
摘要:算是对 [Leap_Frog大佬的补充吧qwq](https://www.luogu.com.cn/blog/daniu/solution-cf605b)。 %%% Leap_Frog. 我们来看一下大佬的这段话: 考虑倒着思考 Kruskal 算法。 按边权从小到大排序。 每次插入一条边。 如果是
阅读全文
摘要:前置芝士:二维偏序。 二维偏序的板子题。 怎么看出是二维偏序的呢? 考虑点对 ,令 ,则两点会越来越近,易知最短距离为 ,所以我们不需要考虑这种情况。 所以问题转化成:$x_i #include using namespace std; #define int l
阅读全文