方差 题解noip 2021

LY1366 [ 20231005 NOIP 模拟赛 T0 ] 加固

题意 设 \(T\) 是由 \(26\) 小写英文字母排列得到的字符串。 \(T'\) 由 \(T\) 复制若干次得到。 给定字符串 \(S\) 为 \(T'\) 的子序列,求 \(T'\) 的最小复制次数。 保证出现的不同字母不超过 \(20\) 种 \(1 \le |S| \le 10^5\) ......
模拟赛 20231005 1366 NOIP LY

AtCoder Beginner Contest 323 (ABC 323) D、E、F 题解

AtCoder Beginner Contest 323 (ABC 323) D、E、F 题解 D 题目大意 给 \(n\) 种数 \(s_i\) ,每一种数有 \(c_i\) 个,每次可以把两个相同的数合并为一个数,问最后会剩下多少数? 分析 对于每一个数 \(s_i\) ,它最多被分解 \(lo ......
题解 323 Beginner AtCoder Contest

LY1374 [ 20231008 NOIP 模拟赛 T2 ] 机房惨案

题意 给定一棵树,每次操作将一个点染成黑色。 求询问的点到所有黑点的路径编号最小值。 ** 数据保证第一次为染色操作 ** Sol 注意到保证第一次为染色。 考虑钦定根节点为染色的点。 那么对于所有染色操作,暴力记录染色的点到根节点的路径上所有点的贡献。 每个点只会贡献一次,这部分是 \(O(n)\ ......
模拟赛 惨案 机房 20231008 1374

题解:洛谷P1119 灾后重建

题解:洛谷P1119 灾后重建 题目传送门 前言:没有掌握floyed求最短路的精髓是每次增加选一个中转点,导致写了2h才勉强卡过 法1:最暴力的想法就是开个三维数组把前i个点的dis状态全部存下来,跑N次floyed,当然由于每次点数时递增的,所以实际复杂度远远小于O(N^4),算了下大概200个 ......
题解 P1119 1119

题解 AcWing 1078 旅游规划

题目描述 给你一棵树,让你判断树上每个节点是否在树的直径上。 树的直径:树上最远的两个点之间的距离。 树的直径可能不止一条。 具体思路 对于树的直径,我们有三种求法。 树形dp 设 \(d_x\) 表示 \(x\) 往下走能够到达最远距离,\(f_x\) 表示经过 \(x\) 的最长链的长度。 那么 ......
旅游规划 题解 AcWing 1078

【题解】AtCoder-ABC323

AtCoder-ABC323A Weak Beats 依题意判断。 提交记录:Submission - AtCoder AtCoder-ABC323B Round-Robin Tournament 依题意排序。 提交记录:Submission - AtCoder AtCoder-ABC323C Wo ......
题解 AtCoder-ABC AtCoder ABC 323

P1003 [NOIP2011 提高组] 铺地毯

第一思路: 开一个N*N的数组,每次都扫一遍地毯范围并标记编号 然后你会发现:喜提MLE 为什么呢? 我们来看看数据范围 0 ≤ n ≤ 1e4 n的范围是1e4,数组总大小为1e16,大约需要4000TB的内存空间 服务器也不带这么玩的 正解: 将地毯信息用结构体存储 struct node{ i ......
地毯 P1003 1003 NOIP 2011

题解 AGC015D【A or...or B Problem】

题解 AGC015D【A or...or B Problem】 problem 从 \(\ge A\) 且 \(\le B\) 的整数中选择一个或多个,把这些整数按位或,求一共有多少种可能的结果。 \(1\le A\le B \le 2^{60}\) solution 首先暴力怎么写呢?FWT。设序 ......
题解 Problem 015D or AGC

2023NOIP A层联测5

A. T1(cook) 复合题,考场上只做出来了分块的部分,没有想到那个组合数求和可以用莫队 分块部分具体不说了 ,对散块部分加权时,可以采用归并优化时间复杂度(因为我北卡长哩,卡到了晚饭之后,卡了一下午,好欸!) 现在考虑问题 \(\sum_{i=0}^{k} \dbinom{x}{i}\) 令$ ......
2023 NOIP

洛谷 P1969 [NOIP2013 提高组] 积木大赛 - 小思维

洛谷 P1969 [NOIP2013 提高组] 积木大赛 [NOIP2013 提高组] 积木大赛 题目描述 春春幼儿园举办了一年一度的“积木大赛”。今年比赛的内容是搭建一座宽度为 \(n\) 的大厦,大厦可以看成由 \(n\) 块宽度为 \(1\) 的积木组成,第 \(i\) 块积木的最终高度需要是 ......
积木 思维 P1969 1969 NOIP

2023NOIP A层联测6

A. 万花筒 考虑发现 每次 相当于 把 x 和 x+d 连边 ,不难发现最后一定是一些环 证明可以看 白简 B . 冒泡排序趟数期望 写一下我曾经比较疑惑的点 为什么 inv 和 p 一定一一对应,因为我们发现只要给出我们一个 inv 我们就可以倒推出唯一确定的 p ,所以它们是一一对应的关系 这 ......
2023 NOIP

掲示板题解

[传送门](https://www.luogu.com.cn/problem/AT1409)题意分析 将第 $i$ 个数提到第一个并输出,也就是倒着扫并输出。倒数第一成为第一,倒数第二成为第二,以此类推,输出该数后标记,最后再枚举一遍,如果没有输出就将它们按正序输出。思路 定义一个 bool 数组, ......
题解

CF1844E Great Grids 题解

Description 定义一个矩形 \(a\) 是好的,当且仅当其满足以下条件: 矩形中每一个元素 \(x\) 都为 \(A,B,C\) 其中之一 每一个 \(2\times 2\) 的子矩形都必须包含三个不同的字符 共用一条边的两个元素不相等 给定 \(k\) 个限制条件,限制条件分为两类: \ ......
题解 1844E Great Grids 1844

P3953 [NOIP2017 提高组] 逛公园

Description 策策同学特别喜欢逛公园。公园可以看成一张 \(N\) 个点 \(M\) 条边构成的有向图,且没有 自环和重边。其中 \(1\) 号点是公园的入口, \(N\) 号点是公园的出口,每条边有一个非负权值,代表策策经过这条边所要花的时间。 策策每天都会去逛公园,他总是从 \(1\) ......
公园 P3953 3953 2017 NOIP

2023NOIP A层联测 6

万花筒 对于由原图中一条边产生的若干条边,我们设原图边为 \((u,v)\),设 \(d=\left\lvert u - v \right\rvert\)。 那么我们先考虑 \(u\) 连向 \((u + d) \bmod n + 1\),从 \((u + d) \bmod n + 1\) 连向 \ ......
2023 NOIP

LY1371 [ 20231007 NOIP 模拟赛 T0 ] 十一之争

题意 给定一个长度为 \(n\) 的数字串 \(s\) 和只包含 yo 的字符串 \(t\),yoimiya 会和 oimiya 玩 \(n\) 轮游戏,初始有一个数字串 \(x\) 为 \(0\),每次: 如果 \(t_i\) 是 y 则是 yoimiya 操作,如果是 o 则是 oimiya 操 ......
模拟赛 20231007 1371 NOIP LY

Ynoi2012 NOIP2016 人生巅峰

Day \(\text{XXX}\)。 注意到修改是易于复合的立方操作,而且值域非常小,所以可以直接 \(O(v\log m)\) 预处理出对每个 \(i\in[0,v)\) 操作了 \(2^{j}\le m\) 次的结果,维护出每一位被修改了多少次,查询某一位的值直接倍增 \(O(\log m)\ ......
巅峰 人生 Ynoi 2012 NOIP

题解 CF600D Area of Two Circles' Intersection

题意简述 给出两个圆的圆心和半径,求两个圆的面积交。 思路 首先通过两圆半径和圆心的距离判断两圆是相离,包含还是相交。相离面积交为 \(0\),包含答案即为较小的圆的面积。当包含时相当于求两个弓形的面积。(见下图) 由正弦定理有: \[\begin{aligned} S_{\text{弓}ACD}& ......
题解 Intersection Circles 600D Area

holiday 假期题解(洛谷搬家)

P5892 holiday 假期题解 前言: 如果您想要过这一道题,需要的前置条件: 知道什么是决策单调性。 知道可持久化线段树怎么找前 $k$ 大。 有耐心看很多文字。 对于第二点,如果您不会的话,可以参考我的学习笔记(专门为过这道题做的)。 链接:https://i.cnblogs.com/po ......
题解 holiday

[TJOI2018] 游园会题解

[TJOI2018] 游园会(dp套dp) 目录[TJOI2018] 游园会(dp套dp)前言:题目简化:解题思路:较为简单的一步:较为困难的步骤思路总结代码呈现:注释/后记: 前言: 这是和 dp 套 dp 的初遇,这不得好好了解一下。 题目简化: 先把题目进行简化,就是要构造字符串,对于 $le ......
游园会 题解 TJOI 2018

题解 CF249E Endless Matrix

题意简述 在上图所示的矩阵中求一个子矩形的元素和。 思路 先可以考虑差分。然后问题转化为求以 \((x,y)\) 为右下角的矩形的元素和。先考虑 \(x\leq y\) 的情况。\(x>y\) 的情况同理可推。先可以算出以 \((x,x)\) 为右下角的,答案为 \(\sum\limits_{i=1 ......
题解 Endless Matrix 249E 249

题解 AT_dp_z Frog 3

分析 首先可以列出最基础的 DP 式子。设 \(dp_i\) 表示跳到 \(i\) 的最小花费,有: \[dp_i=\min\limits_{1\leq j < i }\{dp_j+(h_i-h_j)^2\}+C\]\[dp_1=0 \]直接算的话时间复杂度 \(O(n^2)\)。 然后化简一下式子 ......
题解 AT_dp_z Frog AT dp

【思维】【图论】ARC106F Figures 题解

ARC106F 模拟赛题。 Prufer 序列做法需要较强的组合数学功底,这里不作解释。 由于除根节点外每个点只有一个父亲节点,考虑从这里入手。 给每个点指定一个特殊点,让这个特殊点连向它的父亲节点的非特殊点。此时只有根节点没有特殊点,可随便指定一个特殊点,因为是无根树,且根节点最后是会与某个节点留 ......
题解 思维 Figures 106F ARC

【倍增】ABC212F Greedy Takahashi 题解

ABC212F 暴力就是直接跳,显然不可过。 考虑对暴力进行优化,发现整个图是不会改变的,容易想到使用倍增。 显然是对边进行倍增的,令 \(f_{i, j}\) 表示从第 \(i\) 条边开始,跳了 \(2^j\) 条边后,到的是哪一条边,如果不存在,则设为 \(-1\)。 然后就是很显然的倍增了, ......
题解 Takahashi Greedy 212F ABC

【差分约束】P7624 [AHOI2021初中组] 地铁 题解

P7624 令 \(d_i\) 表示 \(1\) 号车站到 \(i\) 号车站的距离,\(len\) 表示环形地铁的总长度。 考虑题中给的条件: \(type_i = 0\) 时,若 \(u_i < v_i\),即可表示为 \(d_{v_i} - d_{u_i} \ge L_i \iff d_{u_ ......
初中组 题解 地铁 初中 P7624

【主席树】P8201 [传智杯 #4 决赛] [yLOI2021] 生活在树上(hard version)题解

P8201 简单题。 题中求的是 \(dis_{a, t} \oplus dis_{t, b} = k\) 是否存在,显然不好直接维护,考虑转化。 令 \(dist = dis_{a, t} \oplus dis_{t, b}\),\(val = \bigoplus\limits_{x\in \te ......
题解 主席 version P8201 8201

【分块】P9410 『STA - R2』机场修建 题解

P9410 待补:根号分治做法 发现要支持区间加和连通块求和、合并,容易想到分块(虽然我一开始看错题了)。 完全不需要根号分治,直接分块即可。 考虑稍微暴力的分块。区间加的话,散块部分可以直接加到全局的 \(sum\) 数组中,毕竟不是区间求和,然后整块部分直接打标记,记录块内每个连通块的大小即可。 ......
题解 机场 P9410 9410 STA

【DP】P9408 『STA - R2』Locked 题解

P9408 容易想到枚举最大值,令 \(f_{i, j}\) 表示前 \(i\) 个数变为不降序列且第 \(i\) 个数为 \(j\) 的最小操作次数。 先考虑暴力转移:\(f_{i,j} = f_{i - 1, k} + \text{chg}(a_i, j)\),其中 \(\text{chg}(i ......
题解 Locked P9408 9408 STA

【DP】CF1829G Hits Different 题解

CF1829G 先将整个塔变为一个直角三角形的模样。这时就可以很好的用数组表示了,这时发现答案就是一个倒着的等腰直角三角形的和(不考虑边界)。 考虑预处理。 令 \(a_i\) 为点 \(i\) 所在的行数,\(f_i\) 表示 \(i\) 号点的答案,\(g_i\) 表示 \(i\) 和 它正上方 ......
题解 Different 1829G 1829 Hits

【莫队】【bitset】【数据分治】P5313 [Ynoi2011] WBLT 题解

P5313 看到值域比较,又支持离线,可以想到莫队和桶。 考虑先将桶按 \(b\) 分段,将每段分别进行按位与运算,做完第 \(i\) 段时用于运算的桶全都为 \(0\),就可以直接得到答案。这显然可以用 bitset 优化。但是 STL 的 bitset 不支持分裂操作,所以需要手写。 当 \(b ......
题解 数据 bitset P5313 5313