题解wag-quaternary quaternary balance

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

[AGC046D] Secret Passage 题解

Secret Passage 稍微观察一下就能发现,任一时刻,我们剩下的东西必然是一段定死了的后缀,加上一些可以任意塞位置的 0 与 1。考虑任意一个由上述时刻生成的串,就会发现它与该后缀的最长公共子序列长度即为后缀长度,且还剩余一些 0 与 1。 于是考虑模拟最长公共子序列的过程。设 \(g_{i ......
题解 Passage Secret 046D AGC

CF568E Longest Increasing Subsequence 题解

Longest Increasing Subsequence LIS 问题有两种主流 \(O(n\log n)\) 解法,最常见的树状数组法,以及不那么常见的二分法。然后考虑本题,发现一个神奇的思路就是求出 LIS 后倒序复原出数组。 进一步思考后发现,因为本题是 LIS(Longest Incre ......
题解 Subsequence Increasing Longest 568E

Atcoder Beginner Contest 324 G Generate Arrays 题解-Treap

为了更好的阅读体验,请点击这里 题目链接 套上平衡树板子就能做的很快的题,然后因为是指针存树,因此交换只需要把序列大小较小的挨个拿出来插到相应的地方即可。复杂度 \(O(N \log^2 N)\)。 但是一定要记住 不可以直接使用 std::swap 交换包含带有指针的类的实例(如代码中的 Trea ......
题解 Beginner Generate Atcoder Contest

CF914B题解

一道简单的博弈论。 思路 我们可以先记录每张牌的个数,如果这个牌的个数为奇数,则 Conan 胜利,如果全部为偶数,Agase 胜利。 证明 如果说所有牌为偶数,那么无论 Conan 取哪张牌,Agasa 都可以和他取一样的,最终让 Conan 失败。 如果不满足,那么 Agasa 会无法操作。 A ......
题解 914B 914 CF

精选题解汇总

Part 1 比赛题解 CF1873 CF1203 CF1234 CF1249 Part 2 难题题解 P1124 P6346 P2198 P7974 P4814 ......
题解

P6346 题解

题目大意 如果 \(\texttt{Kevin}\) 想和第 \(i\) 个人交朋友,要么需要认识 \(a_i\) 个人,要么付出 \(b_i\) 的代价,他让你使 \(\texttt{Kevin}\) 与所有的人交朋友。 解题思路 如果想水到 \(15\) 分,也就是所有 \(b_i\) 都等于 ......
题解 P6346 6346

P2198 题解

解题思路 激光塔一定在最后。\(f_{i,j}\) 表示前 \(i\) 个位置放 \(j\)(\(j\le i\))个放射塔,那么 \(i-j\) 个干扰塔的伤害。 若第 \(i\) 个位置放放射塔:\(f_{i,j}=f_{i-1,j-1}+(j-1)\times g\times[t+b\time ......
题解 P2198 2198