题解1009f cf

【题解】P5327 [ZJOI2019] 语言

P5327 [ZJOI2019] 语言 题目描述 九条可怜是一个喜欢规律的女孩子。按照规律,第二题应该是一道和数据结构有关的题。 在一个遥远的国度,有 $n$ 个城市。城市之间有 $n - 1$ 条双向道路,这些道路保证了任何两个城市之间都能直接或者间接地到达。 在上古时代,这 $n$ 个城市之间处 ......
题解 语言 P5327 5327 2019

CF笔记

https://codeforces.com/problemset/problem/1819/B 分析:总面积总是不变的 考虑第一刀横着劈开 这样一块宽度是最大的 同理竖着劈开 高度是最大的 这样两种情况 通过算面积能够求出剩下的长宽度 考虑贪心 对于剩下的块 如果有长宽相匹配的就直接匹配 顺序不重 ......
笔记

“科大国创杯”2023 年安徽省青少年信息学科普日活动 初中组 T4 题解

注意到对于全局最小值 $x$ ,一旦我们可以合并它,我们一定会优先合并,因此 $x$ 和与 $x$ 相邻且更靠近起点的位置构成一个决策整体,定义为广义节点。 合并一个广义节点的贡献为 $x\times sz+c$,然后会让 $x\gets x+a$。 考虑比较先后合并两个广义节点 $x,y$ 的决策 ......
初中组 题解 科普 青少年 初中

【题解】[ABC248G] GCD cost on the tree

「八云紫」无数次痛苦地询问,为什么我们还活着? ……而「古明地恋」从不会回答。 恋恋闭上了觉之眼。 思路 容斥 + dp. $\gcd$ 相关,考虑 $\mu$ 反演或者 $\varphi$ 反演。 本质上都和容斥差不多,不如直接一步到位考虑容斥。 把权值拆成 $\gcd$ 和对应的方案数两部分,考 ......
题解 248G cost tree ABC

练习记录-cf-Educational Codeforces Round 147 (A-D)

打的很烂的一场 C想了很久 D的贪心没有贪好 赛后一小时补起来了 谁是nc 我是nc! A. Matching 问有多少种情况能匹配 就计算?的个数 x10x10...... 如果第一个是? 那么就是9x10x10... 如果第一个是0 不能有前导0 就输出0 #include<bits/stdc+ ......

2022年中国大学生程序设计竞赛女生专场-比赛题解

比赛链接:Dashboard - 2022年中国大学生程序设计竞赛女生专场 - Codeforces A. 减肥计划(模拟) 模拟,如果队列第一个人体重是最大的了,则这个人的位置不会再变,直接输出即可。 #include <bits/stdc++.h> using namespace std; us ......
国大学 题解 专场 程序设计 女生

CF 580C- Kefa and Park, 1500 / 树的遍历 / 根节点到叶节点的路径上某性质的点不能连续超过 m 个

CF 580C- Kefa and Park 这个 1500 的题这么水? 这还不如 1200、1300 的思维题 我开始没考虑周全,这题给出的连边没有讲都是从父节点连向子节点,所有要建双边。 #include <iostream> #include <cstring> using namespac ......
节点 路径 性质 1500 Kefa

ABC298Ex 树上计数 + 倍增 题解

思考如何将到 $u$ 距离短的和到 $v$ 距离短的节点分别处理出来。发现对于一次询问 $(u,v)$,可以将所有节点分成三类: 除 $u$ 和 $v$ 的 LCA 的子树外的所有节点。 将 $u$ 至 $v$ 的最短路径的最中间的边删掉后组成的两棵树中的其中一棵树中的所有节点。 不属于以上两类节点 ......
题解 ABC 298 Ex

CF1797E 线段树 + 倍增 题解

Preface 有趣的一道 ds,赛后不看题解做出来了。 Solution 首先有一个性质:$\varphi(x)$ 经过 $\mathcal{O}(\log x)$ 次迭代后变为 $1$。 证明: 若 $x$ 为奇数,$\varphi(x)=x\sum_{i=1}^{k}\frac{p_i-1}{ ......
线段 题解 1797E 1797 CF

LeetCode-Go:一个使用 Go 语言题解 LeetCode 的开源项目

在中国的 IT 环境里,大多数场景下,学习算法的目的在于通过笔试算法题。 但算法书林林总总,有时候乱花渐欲迷人眼。 杜甫有诗云:读书破万卷,下笔如有神。不管选择哪本书,只要深入学习,分层次,逐层进阶,一定可以将算法攻克。 笔者强烈推荐一个 Github 开源项目 LeetCode-Go,你不仅可以把 ......
LeetCode 题解 LeetCode-Go 语言 项目

Text Editor (CF2E) (DP字符串2端分别dp)

思路: 首先贪心出性质, 通过模拟这个题意,一定是先右边弄完在去左边弄, 或者左弄完去右边弄, 于是左右2边分别dp一次 然后求和 dp[i][j],表示i 和 j 匹配的时的 最小操作次数 转移的时候有一个贪心结论,当 si != tj 时, 这个贡献时一个固定值, 正向:首先i- (公共的), ......
字符串 字符 Editor Text CF2E

CF1767F Two Subtrees

$\text{Solution}$ 高维莫队的一次尝试 最小众数似乎要求我们刻画能回滚的高维莫队 但这并不友好 修改有 $O(n^{\frac 7 4})$,询问只有 $O(n)$ 考虑友好的分块,那么就加个值域分块 询问便可以先得到众数的出现次数,然后逐块枚举找到存在众数的块,再在块中枚举数判断是 ......
Subtrees 1767F 1767 Two CF

Atcoder题解:Agc018_f

首先观察这个奇怪的子树为 $1$ 或 $-1$ 的限制。 看不出来性质,润了。 我们不如直接把 $A$ 树和 $B$ 树拆开,变成两棵树,然后在树上留一下匹配的性质。 第一,我们对着样例构造一下,发现似乎有解的样例都有 $abs(X_i)\le 1$ 的解。 这就提示我们猜用 $-1,0,1$ 就够 ......
题解 Atcoder Agc 018

阿里笔试4.19 题解

T1 给定一个序列,问有多少个区间的众数次数>=k sol:考虑two-pointer。枚举左端点,寻找最小的右端点是的众数次数>=k 推导后发现需要支持以下功能 1.增加某一个数的出现次数 2.减少某一个数的出现次数 3.查询众数的出现次数(即出现次数最多的数字的出现次数) 这些功能可以抽象化可以 ......
题解 笔试 4.19 19

CF 1820A-Yura's New Name, 800 / 思维 / ^-^ 或 ^^ 才合法

CF 1820A-Yura's New Name 处理方式 : 特殊情况提前判断 + 一般情况从首推到尾 #include <iostream> #include <cstring> using namespace std; const int N = 1e2 + 10; typedef long ......
思维 A-Yura 1820 Yura Name

GYM104081 部分题解

比赛链接:https://codeforces.com/gym/104081 目前就做了 8 题,里面还有 4 个水题…… 水题:ACEG,模拟题意即可,C 和 E 有一些细节。不想写题解了 F 首先目标是如何将这 9 个数分组,由于答案一定存在,考虑随机化,固定 $a_1 \in S_1$,然后随 ......
题解 部分 104081 GYM

NOIP 2010 题解

机器翻译 单向链表,如果 $i$ 在内存里,那么用 $nxt[i]$ 来记录他的下一个单词,每次要插入的时候,如果当前链表的长度小于 $m$,那么直接把他插入的末尾,如果等于 $m$,就把链表的第一个从链表里弹出来,再把这个元素加进去。 $Code :$ #include <bits/stdc++. ......
题解 NOIP 2010

Atcoder题解:Agc010_e

首先,我们来思考我们要构造的是什么。 我们要构造的是一个无论怎样操作字典序都会变小的序列,且这个序列的字典序是最小的。 然后考虑字典序会变大的条件。 如果字典序变大了,那么一定是在前 $i-1$ 位不变的前题下,$i$ 位的变大了。那么变大的一定是从后面来的。 而我们考虑所有的数对 $(a_i,a_ ......
题解 Atcoder Agc 010

abc292[AtCoder Beginner Contest 292] 题解

写点题目转换下心情吧 A-CAPS LOCK 大水题 B-Yellow and Red Card 大水题 C-Four Variables 给定一个数$N$,问有多少个有序正数数组$(A,B,C,D)$,满足$A\times B+C\times D=N$。 这题荒芜的大脑拒绝思考,看着复杂度不超,写 ......
题解 292 Beginner AtCoder Contest

题解 P9130 【[USACO23FEB] Hungry Cow P】

赛时开始一眼线段树分治,交了几发都 T 了,就意识到事情不对。后来想了想发现势能分析不能带撤销。。。 后来加了一些不能改变复杂度假了的优化,没过之后就自闭跑路了。。。 赛后听别人说了个楼房重建就明白怎么做了。 首先,我们离线下来把 $a$ 排序,去重(这样方便一点,不然权值线段树上的空节点得特判), ......
题解 Hungry P9130 USACO 9130

Atcoder题解:Agc007_e

首先,我们来证明一个引理: 若最优解中,最终串中的字符 $j$ 在最早来自原串中的字符 $i$(显然,$i\le j,s_i=t_j$),则称 $j$ 的匹配是 $i$,则在所有的匹配方案中,$t_j$ 会在全串存在匹配的前提下尽量选择 $|i-j|$ 最小的的 $s_i$ 进行匹配。 我们可以运用 ......
题解 Atcoder Agc 007

CF1033G Chip Game 题解

传送门 CF1033G Chip Game 题目大意 有 $n$ 个石子堆,每堆有 $a_i$ 个石子。A 与 B 轮流取,A 每次只能取 $x$ 个,B 每次只能取 $y$ 个。 求对于所有 $x,y \in [1,m]$,A 必胜、B 必胜、先手必胜和后手必胜的数量。 $n \le 100,m ......
题解 1033G 1033 Chip Game

【题解】P3279 [SCOI2013]密码

[SCOI2013]密码 Fish是一条生活在海里的鱼。有一天他很无聊,就到处去寻宝。他找到了位于海底深处的宫殿,但是一扇带有密码锁的大门却阻止了他的前进。 通过翻阅古籍,Fish 得知了这个密码的相关信息: 该密码的长度为N。 密码仅含小写字母。 以每一个字符为中心的最长回文串长度。 以每两个相邻 ......
题解 密码 P3279 3279 2013

【题解】CF700E

Cool Slogans 给定一个字符串 $S$,要求构造字符串序列 $s_1,s_2,\ldots,s_k$,满足任意 $s_i$ 都是 $S$ 的子串,且任意 $i\in[2,n]$,都有 $s_{i-1}$ 在 $s_i$ 中出现了至少 $2$ 次(可以有重叠部分,只要起始、结尾位置不同即可) ......
题解 700E 700 CF

CF1810G The Maximum Prefix

题面传送门 挺好一题,综合了几种方法。 首先看到题会想到一个dp:设 $f_{i,j,k}$ 表示到了第 $i$ 个位置,历史前缀最大值为 $j$ ,当前前缀和为 $k$ 的概率,乘上期望就是答案。但是这个状态非常寄因为状态本身就有 $O(n^3)$ 了而且不易优化。所以我们需要另辟蹊径。 不妨假设 ......
Maximum Prefix 1810G 1810 The

Pwn系列之Protostar靶场 Stack6题解

源码如下: #include <stdlib.h> #include <unistd.h> #include <stdio.h> #include <string.h> void getpath() { char buffer[64]; unsigned int ret; printf("input ......
靶场 题解 Protostar Stack6 Stack

CF 1195C-Basketball Exercise,状态机DP,1400

CF 1195C-Basketball Exercise 没怎么做过状态机 dp, 这个简单的题目甚至开始甚至搞出三维来。 #include <iostream> using namespace std; const int N = 1e5 + 10; typedef long long LL; / ......
C-Basketball Basketball Exercise 状态 1195

CF题解

E. Replace the Numbers 1900 思维 https://codeforces.com/problemset/problem/1620/E 题解:正着做比较困难,我们可以考虑从后往前做。一个数会被变成什么样子是取决于其后的2操作。2操作可以等价为一个变换,而位置越后的2操作相较前 ......
题解

CF449D Jzzhu and Numbers

CF449D Jzzhu and Numbers 黄金定律:给定序列求答案,但答案与序列顺序无关的题目,要么考虑把序列转权值序列,要么对序列排序。 二进制题按大小排序看起来就没啥用,那就转成权值序列。即,设 $c(i)$ 表示 $i$ 在 $a$ 中的出现次数。同时设 $V$ 为 $a$ 的值域。 ......
Numbers Jzzhu 449D 449 and

CF 1360E-Polygon,1300,思维题

CF 1360E-Polygon 如果一个 1 不是在最右边或最下边,则一定有一个 1 在他的紧邻着的下边或右边,否则不合法。 太妙了。 #include <iostream> using namespace std; const int N = 1e2 + 10; int T, n; char a ......
E-Polygon 思维 Polygon 1360 1300