题解p9858 2008 cold

[ABC234E] Arithmetic Number 题解

题目传送门 一道枚举题。 暴力枚举数字位数、首位、等差数列的公差即可。注意公差的枚举范围,并且需要看看末尾合不合法。顺便提一下,我是用字符串存储枚举的数字的,所以写了一个 check 函数代替大于号。 Code #include <bits/stdc++.h> using namespace std ......
题解 Arithmetic Number 234E ABC

[ABC118D] Match Matching 题解

题目传送门 一道 dp 题。 在 dp 之前,我们需要明确以下几个东西: 状态的表示,状态转移方程,边界条件跟答案的表示。 状态的表示 \(dp_i\) 表示恰好用完 \(i\) 根火柴能拼出来的最大数字。 状态转移方程 \[dp_i = \max\{j \times 10^{len(dp_{i-w ......
题解 Matching Match 118D ABC

ABC323D题解

ABC323D Merge Slimes 题目简述 小 A 有 \(N\) 种橡皮泥。对于第 \(i\) 种橡皮泥,它的大小为 \(S_i\) 且一共有 \(C_i\) 个。 小 A 可以合成两个大小相同的橡皮泥,若这两个橡皮泥大小为 \(X\),则新和成的橡皮泥大小为 \(2X\)。 小 A 想知 ......
题解 323D ABC 323

P9754 [CSP-S 2023] 结构体 题解

前言 在考场上调了 2h+ 还没调出来,并且 T4 也没来得及做。希望看到这段文字的你能避免这样的悲剧。 正文 题目要求动态创建类型,于是我用结构体代表一个 struct(禁止套娃),要新建就 new 出来一个。(最后也没 delete) struct Obj{ typnam tnam; ll le ......
题解 结构 P9754 CSP-S 9754

CSP-S 2023 题解

expect: \(100+100+65+25=290\) 真实: \(100+85+0+15=205\) , rk62 感觉自己考的好烂好烂好烂 T4 这么简单竟然想不出来,感觉如果自己不被 T4 吓到,全做出来其实有望 365+ ? 今年 CSP-S 怎么这么简单吓得我不敢做了 T1 暴力 T2 ......
题解 CSP-S 2023 CSP

CSP-S2023 题解

更好的阅读体验 CSP-S2023 游记 密码锁(lock) \(10^5\) 枚举所有可能答案,然后判断。 代码 #include <bits/stdc++.h> int n; int a[13][7], b[7]; bool check(int i) { int cnt = 0; for(int ......
题解 CSP-S 2023 CSP

P9752 [CSP-S 2023] 密码锁 题解

分析 最水 S 组 T1。 每次可以转动一个拨圈,或者转动相邻的两个拨圈,且幅度相同。那么就有一个简单粗暴的思路,枚举修改的方案,用 vector 来储存修改后的方案,存到 map 当中,当然也可以转换为数字存进去。 切记要用两个 map 来储存,一个存方案,下文称为 \(mp\),一个存这个方案在 ......
密码锁 题解 密码 P9752 CSP-S

CSP-J2023 题解

T1 code #include <bits/stdc++.h> using namespace std; int n,ans; signed main() { ios::sync_with_stdio(0);cin.tie(0); cin>>n; for(int i = n; i; i -= (i ......
题解 CSP-J 2023 CSP

KDOI-06-S 模拟题解

目录P9744 「KDOI-06-S」消除序列P9745 「KDOI-06-S」树上异或 P9744 「KDOI-06-S」消除序列 发现这是一道贪心题,第一种操作只会使用一次,也就是在最开始的时候进行清零操作,从而使得整个前缀都变成0。考虑两种情况,一种是前缀全部为1,另一种为0,分别考虑转移即可 ......
题解 KDOI 06

【0xGame 2023】题解week1

前段时间在忙各种事情,这两天有学弟学妹要入re,想带着他们打个新生赛,我就打算把这个比赛week1的题先出一遍,后面的之后再说。 这次0xGame的re题目名称都很有意思,开始做吧。 数字筑基 解法 直接搜索字符串 代码金丹 解法 就比第一题多个判断过程,不过flag仍然明文 网络元婴 解法 进去后 ......
题解 0xGame xGame week1 2023

ABC209E Shiritori 题解

ABC209E Shiritori 题解 原题:洛谷AT_abc209_e 分析 博弈,可重复选,一眼图论,将每个单词的前三个字符向后三个字符连边,并用后三个字符代表这个单词。 看一下样例。 5 eaaaabaa 1 2 eaaaacaa 1 3 daaaaaaa 4 5 eaaaadaa 1 4 ......
题解 Shiritori 209E ABC 209

T207127 ++ 题解

原题 ++ 题目背景 题目描述 给定一个 \(n\) 个节点(编号为 \(1\) 到 \(n\))和 \(n-1\) 条边构成的无向连通图。 构造一张新图: 新图的点集与原图相同 在新图中 \(u,v\) 之间有无向边 是 在原图中 \(dis(u,v) \ge k\) 的充分必要条件 (\(k\) ......
题解 T207127 207127

Game Bundles 题解

题目链接 Game Bundles 分析 很神奇的一道题目 先想想如何计算一个集合和为60的子集个数 可以想到通过 \(DP\) 求解: 记 \(f[i][j]\) 为前 \(i\) 个数字,和为 \(j\) 的子集个数 则 \(f[i][j]+=f[i-1][j-a[i]]\) \(f[i][a[ ......
题解 Bundles Game

P9745 「KDOI-06-S」树上异或 题解

原题 挺好的树形 dp ,正好 dp 不太熟练,练习一下 赛时只想到了暴力和\(X \leq 7\) 的链的部分分,过于 naive 不说了 先考虑链的情况,既然是二进制考虑按位拆分。设 \(g_{i,j,0/1}\) 表示以 \(i\) 为根,从 \(i\) 点连通块的疑惑和第 \(j\) 位为 ......
题解 P9745 9745 KDOI 06

力扣题解(持续更新)

双指针、二分法、数学、分治、摩尔投票、Hash存储、队列、栈、博弈论、动态规划、模拟、排序、贪心、滑动窗口、单调栈、深度优先搜索、Mirrors遍历、Manacher、回溯剪枝 ......
题解

[AGC002F] Leftmost Ball 题解

Description 给你 \(n\) 种颜色的球,每种颜色的球有 \(k\) 个,把这 \(n\times k\) 个球排成一排,把每一种颜色的最左边出现的球涂成白色(初始球不包含白色),求有多少种不同的颜色序列,答案对 \(10^9+7\) 取模。 \(1\leq n, k\leq 2000\ ......
题解 Leftmost 002F Ball AGC

P5474 题解

解题思路 若车 \(A\) 限制车 \(B\) 离开,则 \(A\) 先于 \(B\) 离开,所有的限制条件构成了一个拓扑结构。 若 \(A\) 限制 \(B\),\(A\) 向 \(B\) 连边,最终可以使用拓扑排序求解。 而查找每个车辆的约束车辆时间复杂度为 \(\mathcal{O}(n\ti ......
题解 P5474 5474

P3119 [USACO15JAN] Grass Cownoisseur G 题解

分析 大概是强连通分量里面最水的一道紫题,不过细节挺多的,做题的时候给蒟蒻震惊到了。 题目要求是从 \(1\) 走到某个点,然后再走回 \(1\) 号点,中途可逆行一次,问最多能经过几个点。 有一个明显的思路是存两个图,一个正图一个反图,正图是为了求 \(1\) 到各个点的距离,反图是为了求各个点到 ......
题解 Cownoisseur P3119 Grass USACO

LuoguCF362B Petya and Staircases 题解

分析 简单排序题。 首先 Petya 可以通过跨过一个台阶和两个台阶保证不经过脏台阶,但是不可以通过跨过三个台阶来保证不经过脏台阶,所以只要看有没有连续的三个脏台阶即可。 同时,如果第一个台阶和最后一个台阶至少一个是脏台阶那么就不可以达成。 Accepted Code /*Code By Manip ......
题解 Staircases LuoguCF Petya 362B

ARC166B题解

发现还没有和我一样的做法。 觉得 B 比 A 好想的多。 令 \(A_i\) 为 \(a_i\) 变成 \(A\) 的倍数最少次数,\(B_i,C_i,AB_i,AC_i,BC_i,ABC_i\) 同理。 那么我们就有 \(A_i=(A-A\bmod {a_i})\bmod A\),其他同理。 这一 ......
题解 166B ARC 166

CF424C的题解

简单题。CF 评分才 *1600。 可以直接先把 \(Q\) 拆成两部分。 \[\begin{aligned} \large a&=\oplus^n_{i=1}p_i\\ \large b&=\oplus^n_{i=1}\oplus^n_{j=1}\ \ \ (i\bmod j)\\ \large ......
题解 424C 424 CF

CF580B的题解

见到有单调性、有限制的区间问题,很自然地就会想到用尺取去做。 先按工资升序排序,然后套上尺取就行了。 不会尺取的可以根据这道题去学。 时间复杂度 \(O(n\log n)\)。 #include<cstdio> #include<algorithm> #define ll long long usi ......
题解 580B 580 CF

ARC166A的题解

略带一点思维吧。 个人认为比 B 难想。 先来考虑弱化版的题面: Case 1 如果 \(X\) 串和 \(Y\) 串都没有字母 C,如何判断是否有解? 观察操作,我们能发现这个操作的本质实际上是让一个位于前面的字母 A 挪到其后面的任意的位置,并且前后两个 A 的相对位置不会发生改变。 所以,如果 ......
题解 166A ARC 166

[题解]CF1881G Anya and the Mysterious String

思路 发现如果一个字符串中有长度大于等于 \(2\) 回文子串,必定有长度为 \(2\) 的回文子串或长度为 \(3\) 的回文子串,并且形如:aa 和 aba。 所以考虑用线段树这两种情况。维护一段区间的最左、次左、最右、次右的元素,同时用两个标记变量 \(f_1,f_2\) 分别表示这个区间中是 ......
题解 Mysterious String 1881G 1881

[ABC207F] Tree Patrolling 题解

[ABC207F] Tree Patrolling 弱智 DP 题,设 \(f(i,j,0/1/2)\) 表示在点 \(i\),子树中有 \(j\) 个点被覆盖,且 \(i\) 点自身状态是未被覆盖/被自身覆盖/被某个儿子覆盖,然后树上背包更新就行了。 代码: #include<bits/stdc+ ......
题解 Patrolling 207F Tree ABC

AT_tdpc_tree 木 题解

木 弱智 DP 题,直接设 \(f_i\) 表示 \(i\) 子树内染色的方案数,然后每次合并一个点与它的儿子即可(具体而言,因为儿子间独立,所以方案数就是二项式系数)。 需要注意的是因为第一条边可以在任意位置,所以要以每个点为根各 DP 一次。但是这样每条边会被算两次,所以乘以 2 的逆元即可。 ......
题解 AT_tdpc_tree tdpc tree AT

洛谷 P4749 [CERC2017] Kitchen Knobs 题解

Kitchen Knobs 首先,一个 trivial 的想法是,因为每个旋钮如果上面的数字并非全部相同则其必有唯一最优位置,故直接扔掉那些全部相同的旋钮,对于剩余的求出其最优位置。明显此位置是一 \(0\sim6\) 的数。 因为是区间同时旋转,所以转成数之后就是区间加同一个数。 一个经典套路是差 ......
题解 Kitchen P4749 Knobs 4749

[AGC020F] Arcs on a Circle 题解

Arcs on a Circle 首先,一个非常自然的想法是尝试断环成链。怎么断呢?我们发现,选择最长线段的起点处截断是个非常好的选择,因为不可能有一个线段完全覆盖它。这之后,一个紧接着的想法就是 DP。 假如把描述中的全部“实点”改成“整点”的话,那么这题是比较 trivial 的,可以通过随便状 ......
题解 Circle 020F Arcs AGC

[ARC072E] Alice in linear land 题解

[ARC072E] Alice in linear land 首先,一个 trivial 的想法是记 \(f_i\) 表示第 \(i\) 步前离终点的距离,于是 \(f_i=\min\Big(f_{j-1},|f_{j-1}-d_i|\Big)\)。 然后,我们设 \(f_i'\) 表示在修改第 \ ......
题解 linear Alice 072E land

CF1542E2 Abnormal Permutation Pairs (hard version) 题解

Abnormal Permutation Pairs (hard version) 两个限制:字典序小、逆序对大,一个显然的想法就是确保一对关系,统计另一对关系。 确保哪一对呢?我们想了想,决定确保字典序小,因为字典序是可以贪心的。 具体而言,我们考虑两个排列自第 \(i\) 位开始出现了不同。这样 ......
题解 Permutation Abnormal version 1542E