NOI2025 赛前做题记录 - 6 月(上)
由于笔者水平能力有限,难以避免有行文错误,若您在垂阅本人拙作时发现阙漏,还望您批评并加以斧正,谢谢!为此给您带来的不便本人在此深表歉意。
Universal Cups
The 2nd Universal Cup. Stage 20: Ōokayama
P. Bridge Elimination
考虑用乘法分配律来拆贡献计算。记 \(f_i\) 表示 \(i\) 个点的边双连通图数量(可以简单计算),\(F(x)\) 为 \(\sum\limits_{i=1}^{n}\dfrac{f_ix^i}{(i-1)!}\),再记 \(g_i\) 表示 \(n\) 个数中选 \(i\) 个数的数的积的和(也可以简单计算),那么答案即为 \(\sum\limits_{i=1}^{n}g_i(n-i)![x^n]F(x)^i\),时间复杂度 \(\mathcal{O}(n^3)\)。
核桃编程 NOI 组周赛
HT-062-NOI
六一儿童节前夜孩子不懂事打着玩的,没认真打。
HT-062-NOI A. 拼接字符串
发现求出最长的前缀满足是某个 \(S\) 的前缀后即可 \(\mathcal{O}(1)\) 计算答案(因为你可以预处理出 \(S\) 建立的 Trie 树上每个点对应的答案),而这可以哈希解决,时间复杂度 \(\mathcal{O}(n\log n)\)(视一切除 \(|\Sigma|\) 以外的量与 \(n\) 同阶)。
HT-062-NOI B. 白点黑点
考虑当左右端点每个点的度数都确定的时候,最小匹配就是 \(n+\min\limits_{S}\left(|N(S)|-S\right)\),最大匹配就是左右度数非 0 的度数的点的较小值,可以证明两个界直接的都可以取到。然后对于两边分别 dp,记录当前点的编号,\(S\) 的大小,\(S\) 中的点的度数和,当前所有点的度数和,非零点的个数,转移的时候枚举一下一个点的度数以及是否被选中就好了,时间复杂度 \(\mathcal{O}(n^6)\)。
HT-062-NOI C. 动物园大会
发现答案即为无序对 \((a,b,c)\) 的个数使得 \(\operatorname{LCA}(a,b),\operatorname{LCA}(a,c),\operatorname{LCA}(b,c)\) 去重后大小为 \(2\) 且构成非偏序对,再乘上 \(2\)。不妨假设 \(c\) 是“飞”在外面的那个点(具体地,\(\operatorname{LCA}(a,c)=\operatorname{LCA}(b,c)\)),那么我们考虑计算固定 \(a\) 的时候 \((a,b,c)\) 的个数,发现可以在树上 dfs 的时候维护偏序对的变化量,最后前缀和即可(可以离线后 cdq 分治)。
这样我们就解决了 \(q=0\) 的情况,现在考虑只有类型 \(1\) 的操作。我们发现只需要再额外计算固定 \(c\) 时的答案,这个用经典的根链 - 子树对偶后是平凡的,也可以离线 cdq 分治。
再考虑去掉两个点的情况,容斥一下,只需要计算给定的两个点 \(p,q\) 都在 \((a,b,c)\) 中时的方案数。假设 \(f(x,y)\) 表示 \(\sum\limits_{i\ne x}w(\operatorname{LCA}(x,i),y)\),其中 \(w(x,y)\) 表示 \(x\) 和 \(y\) 上的冰淇淋是否构成一组非偏序对,那么需要额外加上的情况数就是 \(f(p,\operatorname{LCA}(p,q))+f(q,\operatorname{LCA}(p,q))-f(\operatorname{LCA}(p,q),\operatorname{LCA}(p,q))\),这也可以使用 cdq 分治解决。
注意实现和常数优化,总时间复杂度 \(\mathcal{O}(n\log^2n)\)。
HT-063-NOI
开场想了很久 A 调了很久发现假了,然后一眼会了 B,调了一会暴力,再加一个 DS 优化就过了。
发现 C 看着也是萌萌题,推了一下式子得到 30,优化到 50,再优化一下就过了。
这个时候我调不出 A,这个时候关键来了!

鹰之一手!
HT-063-NOI A. PVZ
考虑这个过程的暴力模拟——我们维护一个当前怪物能够提供庇护的时间,初始时为 \(t=0\),每次如果 \(a_i>tB\),就将 \(t\) 修改为 \(t+\left\lfloor\dfrac{a_i-tB-1}{A+B}\right\rfloor\),否则将 \(t\) 修改为 \(1\),答案即为 \(t\) 在过程中所达到的最大值。
考虑一个函数 \(f(x)\),表示若初始时 \(t=x\),轮过 \(0\sim n-1\) 后,\(t\) 的值,容易发现 \(f(x)\) 单调不降且最后会收敛,考虑求出收敛值。
发现,满足 \(f(x)>x\) 的 \(x\) 构成一个前缀,二分出这个界点 \(p\),那么 \(f(x)\) 经过迭代后最后就会收敛于 \(p+1\),再模拟一轮即可,时间复杂度 \(\mathcal{O}(n\log V)\)。
HT-063-NOI B. 背包问题 1
考虑 \(q=0\),不妨假设 \(a\) 不降,维护一个点集 \(S=\{(0,0)\}\),每次加入一个 \(x\) 的时候,就将 \(S\) 并上 \(S\) 每个点向上平移 \(x\) 个单位长度再并上 \(S\) 每个点向右平移 \(x\) 个单位长度。
由于 \(a\) 不降,所以如果当前形状有个洞,那么右边和上面都可以被删掉。
也就是说,如果我们动态把已经确定的部分剥离掉,那么时时刻刻 \(S\) 都是两个阶梯并在一起,形如:
#.....
##....
##....
##....
#####.
######
显然这个阶梯可以用两个变量来表示,即可做到除排序外线性。
否则,我们考虑用平衡树维护 \(a_i\) 构成的集合。如果 \(a_i\le L-x+1\),其中 \(L\) 为高度的 \(y\) 坐标,\(x\) 为楼梯宽度的 \(x\) 坐标(例如上述例子中,\(x=1,L=5\)),那么我们执行的操作必然是 \(L\leftarrow L+a_i\),而不符合这种情况的操作至多只有 \(\mathcal{O}(\log V)\) 次,单独处理即可。
总时间复杂度 \(\mathcal{O}(n+q\log n\log V)\)。
HT-063-NOI C. 背包问题 2
容易知道,答案为 \([x^v]\left(\prod\limits_{i=0}^{n-1}\sum\limits_{j=0}^{m-1}x^{ij}\right)\),其中乘积为 \(\bmod(x^n-1)\) 意义下的循环卷积。
根据 FFT 的相关理论,答案为 \(\dfrac{1}{n}\sum\limits_{i=0}^{n-1}\omega^{-iv}\prod\limits_{j=0}^{n-1}\sum\limits_{k=0}^{m-1}\omega^{ijk}\)(其中 \(\omega\) 为 \(n\) 次单位根),记 \(\prod\limits_{j=0}^{n-1}\sum\limits_{k=0}^{m-1}\omega^{ijk}=f_i\)。
那么,\(f_i=\left(\prod\limits_{j=0}^{n/\gcd(n,i)-1}\sum\limits_{k=0}^{m-1}\omega^{ijk}\right)^{\gcd(n,i)}=\left(m\prod\limits_{j=1}^{n/\gcd(n,i)-1}\dfrac{\omega^{ijm}-1}{\omega^{ij}-1}\right)^{\gcd(n,i)}=\left(m[\gcd(n/\gcd(n,i),m)=1])\right)^{\gcd(n,i)}\)。
所以答案即为 \(\dfrac{1}{n}\sum\limits_{i=0}^{n-1}\omega^{-iv}\left(m[\gcd(n/\gcd(n,i),m)=1])\right)^{\gcd(n,i)}\),我们把 \(i\) 按照 \(\gcd(n/\gcd(n,i))\) 分组,答案为 \(\dfrac{1}{n}\sum\limits_{d|n}[\gcd(d,m)=1]m^{n/d}\sum\limits_{\substack{0\le i<n\\\gcd(i,n)=n/d}}\omega^{-iv}\)。
而 \(\sum\limits_{\substack{0\le i<n\\\gcd(i,n)=n/d}}\omega^{-iv}\) 是模 \(n\) 意义下的 Ramanujan 和,所以其等于 \(\sum\limits_{e|\gcd(d,v)}\mu\left(\dfrac{d}{e}\right)e\),所以答案为
容易发现答案关于 \(\gcd(v,n)\) 被划分为若干个等价类,而式子可以被转化为 \(\dfrac{1}{n}\sum\limits_{e|\gcd(n,v)}e\sum\limits_{e|d|n,\gcd(m,d)=1}m^{n/d}\mu\left(\dfrac{d}{e}\right)\),当 \(e\) 固定时,后面一坨式子是定值,求出之后发现有关 \(v,e\) 一坨也可以算了,跑两次高维前缀和 / 差分即可,总时间复杂度 \(\mathcal{O}(d(n)\omega(n))\),其中 \(d(n),\omega(n)\) 分别表示 \(n\) 的因数个数和质因子个数,可以通过。
HT-064-NOI
打一半懒得打了,只过了最后一题,树姐姐,你真谦虚!
HT-064-NOI A. a酱的仙人掌
圆方树上瞎 dp 一下就做完了,懒得写了,复杂度 \(\mathcal{O}(n+m)\)。
HT-064-NOI B. b酱的补习班
咕。
HT-064-NOI C. c酱的答辩
如果你做过 QOJ1262 Justice For Everyone 的话,你会惊奇的发现这道题就是那道题的后半部分。
然后随便 NTT 一下就做完了,复杂度 \(\mathcal{O}(n\log n)\),其中 \(n=\sum a\)。
正睿
NOI 模拟赛 #1
NOI 模拟赛 #1 B. 虫洞
容易发现一个大小为 \(x\) 的环对答案的贡献就是 \(x^x\),先把原图中的环去掉,然后只需要考虑链的情况,把它看作是一个权值为链的点数的点。
记 \(f_{S,i}\) 表示现在剩下的点构成的可重集为 \(S\),已经选了的点的点权和为 \(i\) 的方案数(\(i=0\) 时表示是新的一组),那么由于 \(p\) 个点组成的有向环数量为 \((p-1)!\),所以我们在 \(i=0\) 时以最小的未被使用过的点作为开头,在 \(i\ne0\) 的时候考虑当前环下一个放入的元素进行转移(或者也可以选择结束这个环),最终的时间复杂度为 \(\mathcal{O}(Tnm)\),其中 \(T\) 为可能的 \(S\) 的个数,\(m\) 为初始时 \(S\) 中不同元素的种类数,可以轻松通过。
NOI 模拟赛 #2
NOI 模拟赛 #2 C. 风井省选
考虑改为计算长颈鹿投完票后出现至少一次平票的概率 \(p\),答案即为 \(1-\dfrac{p}{2}\)。
将投票过程视为一个 \(-1/1\) 序列,泉州七中的选手的数字强制为 \(1\),正常选手的数字为 \(-1\) 或者 \(1\),将两个选项之间的差值看作一条直线,特别的,如果在 \(x\) 轴上往下走,则会“反弹”。
我们有双射:\(a_1,a_2,\cdots a_n\Leftrightarrow A_0,-1,A_1,\cdots,-1,A_x,1,A_{x+1},\cdots,1,A_{x+y}\),其中 \(A\) 为一个和为 \(0\) 且前缀和非负的数组。
那么,最后一次平票就在 \(A_{x}\) 的末尾(\(x\) 为偶数),否则就在 \(A_{x-1}\) 的末尾。
情况数就是 \(k\) 卡特兰数乘以在其它选手里选 \(1\) 和 \(-1\) 的方案数(组合数),然后长颈鹿的位置由于 \(A\) 的对称性所以可以算出在对应前缀的概率。
具体而言,答案为
枚举 \(x+y\) 即可,剩下的未确定的部分是好前缀和维护的,总时间复杂度 \(\mathcal{O}(n)\)。
NOI 模拟赛 #3
NOI 模拟赛 #3 C. 修建植树
考虑从前往后确定增加过后的 \(h'(h'_i\ge h_i)\),那么答案为 \(\sum\limits_{i=1}^{n}(h'_i-h_i)+[\text{Inversion Counts}]\),将问题转化为如下形式:有一个数组 \(c_i\) 表示新加入一个数字 \(i\) 的“相对”代价(\(c_i\) 等于 \(i\) 加上目前已确定的数中大于 \(i\) 的个数,初始时 \(c_i=i\)),每次插入 \(x\) 的时候你需要选择一个 \(i\ge x\),代价为 \(c_i-x\),并将 \(c\) 的长度为 \(x-1\) 的前缀加上 \(1\),求最终代价和最小值。
可以证明,我们每次抉择的时候,一定可以选择任意一个 \(c\) 中的最小值,证明不难,使用权值线段树维护数组 \(c\) 即可做到 \(\mathcal{O}(n\log n)\)。
NOI 模拟赛 #6
NOI 模拟赛 #6 B. 猜大小
(不妨假设离散化后数字分别为 \(1\sim n\)),二分答案 \(v\),记 \(f_i\) 表示读到 \(i\) 时猜另一个数小于自己的最小概率,\(g_i\) 表示 \(i\) 的个数是否 \(\ge2\),那么有 \(f_1=0,f_{i+1}=\max(0,2v-(1-g_iv-f_i))\),合法当且仅当对于任意 \(i\) 均满足 \(f_i+g_iv\le 1\),考虑优化复杂度,发现我们可以维护一个双端队列,需要支持 pop 最后一段不满足 \(f_i+g_iv\le 1\) 的尾巴(当然还有修改最后一段的右端点),全局加上一个一次函数(这个可以通过全局打标记实现),以及全局对 \(0\) 取 \(\max\)(就是 pop head 以及修改第一段的左端点),都可以实现,由于需要比较大小,所以需要维护分数类,注意实现细节,总时间复杂度 \(\mathcal{O}(n)\)。
NOI 模拟赛 #7
开场看完三个题,立马会了 A,十分钟写完。
然后 C 看着很可做,做了两个半小时还是只会 \(20\) 分,先写了。
这个时候发现 B 有一个 key observation,然后写一下就过了,不知道为啥这么多人没过,排名 Rank 3。
NOI 模拟赛 #7 A. 活板
把每个字符串对应的所有前缀在 Trie 树上的位置按顺序写成一个序列,那么询问就是区间同色对数量,莫队即可,时间复杂度 \(\mathcal{O}(n\sqrt{n})\)。
NOI 模拟赛 #7 B. 银河楼酒店
令 \(p=R+G,q=G-B+1,r=p-q\),发现等待时间构成一个大小为 \(p\) 的周期,由 \(q\) 个 \(0\) 和 \(r,r-1,\cdots,1\) 组成,那么当 \(2(a_{i+1}-a_i)\ge r\) 时肯定不会走回头路,由于 \(a_i-a_{i-2}\ge p\ge r\),所以不会有连续两个位置可能走回头路。
记 \(f_i\) 表示从第 \(i\) 个红绿灯开始走(如果 \(i\) 可能走回头路,那么 \(f_i\) 无意义),走到终点等待红灯的时间以及走额外路程的时间的最小期望值(初始时 \(f_{n+1}=0\)),那么因为不会有连续两段路可能走回头路,所以直接分类讨论一下即可转移。
具体地,若 \(i\to i+1\) 不可能走回头路,那么 \(f_i=\dfrac{1}{p}\sum\limits_{i=1}^{r}\min(i,f_{i+1})\),否则 \(i+1\to i+2\) 肯定不能走回头路,故 \(f_x=\dfrac{1}{p}\sum\limits_{i=1}^{r}\min\left(i,\dfrac{1}{p}\sum\limits_{k=1}^{r}\min(\{f_{x+2},k,w(j,a_{x+1}-a_x)\})\right)\),其中 \(w(j,a_{i+1}-a_i)\) 为返回的代价(\(w(i,j)=2j+g(i-j)\)),其中 \(g(x)=x(0<x),g(x)=0(-q+1\le x\le 0),g(x)=x+p(x\le -q)\),简单分类讨论即可做到 \(\mathcal{O}(n)\)。
NOI 模拟赛 #7 C. 最后的鸽子
咕。
NOI 模拟赛 #8
开场看完三个题,一个半小时过去一个都不会,很慌。
然后给 A 写了个乱搞,没 TLE 但是 WA,调了好久才过,这个时候只剩两个小时了。
发现 B 是简单数据结构题,但是我的做法有点假,奋战两个小时无果,最后 100 + 0 + 5 = 105,有点坠机。
NOI 模拟赛 #8 Dls noi t1
假设 \(f_{i,j}\) 表示两个人现在第一个人时间会被占用到 \(i\),第二个人会被占用到 \(j\),那第三类转移的时候只需计算从对应状态开始往后走的 dp 值。
我们每次肯定如果往后跳,肯定会跳下一个右端点小的那一头,记搜就过了,可以证明在 \(i>j\) 时,我们只需要保留最大的 \(f_{i,j}\) 以及此时最小的 \(j\),直接倍增即可,可以通过一些观察做到 \(\mathcal{O}(n)\),我没看懂。
NOI 模拟赛 #8 Dls noi t2
咕。
NOI 模拟赛 #8 Dls noi t3
绝世好题!层层转化,都很妙!
考虑记最小生成树边权和为 \(v\),每条边的增量为 \(x_i\),那么,这相当于以下线性规划问题:
其中 \(T\) 表示所有图的生成树构成的集合,\(f_{t,e}\) 表示生成树 \(t\) 中是否含有边 \(x\)。
写出其对偶问题:
考虑换元,设 \(w_e=\sum\limits_{t\in T}f_{t,e}y_t\),那么限制为:
- \(\sum\limits_{e\in E}w_e\ge K(n-1)\);
- \(0\le w_e\le d_e\);
- 最小化 \(\sum\limits_{e\in E}c_ew_e\)。
有一个限制是 \(w_e\) 必然可以被若干棵原图的生成树线性组合出。
并且容易证明可以要求 \(w_e\) 为整数且 \(\sum\limits_{e\in E}w_e=K(n-1)\)。
可以证明,\(w_e\) 可以被组合出当且仅当 \(\forall \varnothing\neq S\subseteq V\),\(S\) 的导出子图中的边的 \(w\) 之和均不超过 \(K(|S|-1)\)(此即为 Nash-Williams 定理)。
由于这个限制是一个拟阵的形式,所以可以证明,按照 \(c_e\) 从小到大的顺序确定 \(w_e\),每次取到上界,是正确的,所以我们只需求 \(\mathcal{O}(m)\) 次 \(\min\limits_{u\in S,v\in S}\left(K(|S|-1)-\sum\limits_{e\in E(S)}w_e\right)\)。
而这,是一个最小割的形式!可以使用网络流简单解决,总时间复杂度 \(\mathcal{O}\left(m\operatorname{MaxFlow}(n,m)\right)\)。
梦熊苍穹计划模拟赛
梦熊 NOI 模拟赛 #0
梦熊 NOI 模拟赛 #0 C. grid
非常牛的计数题!考虑扫描行的过程,维护每个本质不同列的最后一位构成的 01 串,那么扫一行相当于是将每个数字替换为 0,1 或 01,要求每次替换的时候第一位发生改变的数字必须是 \(0\to1\) 或者是 \(0\to 01\),那么答案就是对于每个可能的终串 \(S\) 以及其对应的方案数 \(f_{n,S}\),\(\dbinom{m-1}{|S|-1}\cdot f_{n,S}\) 的和。
一个朴素的想法是直接状压 dp,经过一些调整,构造,观察,抑或是人类智慧,我们可以得到这样一个做法:
记 \(f_{n,S,a,b}\),其中 \(S\) 为 0,1 或 01,表示当前字符串长度为 \(a+1\),第一个字符下一次操作会被替换为 \(S\),不考虑剩下的 \(a\) 个字母替换过程中是否会导致字典序变小,在经过 \(n\) 次操作后,字符串长度为 \(b\) 的方案数。
然后我们发现这就可以转移了!如果 \(S=1\) 可以直接删掉第一位并枚举下一位,否则可以枚举 \(S\) 能“保持”到第几次操作(由于此时 \(S\) 以 \(0\) 开头,所以这等价于开头的 \(0\to 1\) 的轮数),此时串长是多少,再枚举一下此时开头的 \(0\) 变成的新的串是什么即可,当然如果这个 \(0\) 一直不变的话可以直接删掉,同 \(S=1\) 的情况转移。
这样,我们就得到了一个 4D-3D 的 dp,总时间复杂度 \(\mathcal{O}(n^2m^3)\)。
好了这里是这个菜鸡先射箭再画靶的碎碎念:那么这个 \(f\) 是怎么构造的呢?由于操作是一组一组的(类似区间 dp),所以记录的信息要是一个半闭半开的区间(这样就不用记录连接处的信息),由于连接处不可避免要保留第一次 / 最后一次(这取决于枚举的是哪边的间断点)的缩合信息,所以就理所当然的得到了这个状态 \(f\),并且理论上记录最后一次操作第一个字符变成什么也是合理的这不是对称的吗。
upd:这个好像不太对,转移是有方向的。
upd2:这个替换有逆操作“缩合”,所以这个应该还是对的。
梦熊 NOI 模拟赛 #23
开场发现 B 是一个简单题,秒了。然后发现 C 用一些数学知识分析后是一个数据结构题,想了好久不会,先写了个暴力。
发现 A 分讨一下做完了,写了一个半小时,最后尝试优化了一下 C,多了一点分,排名 Rank 2。
梦熊 NOI 模拟赛 #23 A. 水 rac
把每个子连通块的直径都预处理出来,我们发现合并两棵直径长度分别为 \(x,y\) 的树时,得到的直径在范围 \(\left[\max\left(\{x,y,\left\lceil\dfrac{x}{2}\right\rceil+\left\lceil\dfrac{y}{2}\right\rceil+1\}\right),x+y+1\right]\) 之间,所以直接从大到小合并即可,合并的时候需要一些分类讨论来保证有解,时间复杂度 \(\mathcal{O}(n)\)。
梦熊 NOI 模拟赛 #23 B. 简单题
答案为
令 \(t=\left\lfloor\dfrac{n}{x}\right\rfloor\),则 \(h_0(x)=\dfrac{t(t-1)}{2},h_1(x)=-\left\lfloor\dfrac{t}{2}\right\rfloor\)。
所以问题转化为了给定区间 \([l,r]\) 和 \(k\),求区间内满足 \(x\equiv k\pmod 2\) 的 \(\varphi(x)\) 之和,奇数只需要用总数减即可(总数使用杜教筛),偶数有递推公式 \(S(k)=\sum\limits_{i=1}^{k}\varphi(i)[2\mid i]=S\left(\dfrac{k}{2}\right)+\sum\limits_{i=1}^{\frac{k}{2}}\varphi(i)[2\mid i]\),总时间复杂度 \(\mathcal{O}(n^{\frac{2}{3}})\)。
梦熊 NOI 模拟赛 #23 C. 艾斯艾慕
大套子题,考虑由于贝叶斯公式,\(P_{x,y}\sim\dfrac{1}{\mathit{deg}_y}\),所以 \(E_(x,y)=\dfrac{1}{P_{x,y}}=\mathit{deg}_y\sum\limits_{v\in N(x)}\mathit{deg}_v\)。
列出拉格朗日乘子法方程求解最小值,可知 \(2q_v+E_{x,v}+\lambda=0\),所以 \(q_v=-\dfrac{\lambda+E_{x,v}}{2}\),又因为 \(\sum\limits_{v\in N(x)}q_v=1\),解得 \(q_v=\dfrac{1}{|N(x)|}+\dfrac{\sum\limits_{w\in N(x)}E_{x,w}}{2|N(x)|}-\dfrac{E(x,v)}{2}\)。
所以点 \(x\) 对应的答案为 \(\sum\limits_{v\in N(x)}(q_v^2+E_{x,v}q_v)=\dfrac{1}{|N(x)|}+\dfrac{\left(\sum\limits_{v\in N(x)}E_{x,v}\right)^2}{4|N(x)|}+\dfrac{\sum\limits_{v\in N(x)}E_{x,v}}{|N(x)|}-\dfrac{1}{4}\sum\limits_{v\in N(x)}E(x,v)^2\)。
咕。
梦熊 NOI 模拟赛 #24
开场发现 B 是简单题,秒了。然后发现 C 是个板子题,也过了,发现 A 随便分讨一下就做完了,然后就 AK 了。
梦熊 NOI 模拟赛 #24 A. 电影
最后保留的数一定构成了一段值域上连续的区间,双指针一下分讨一下就做完了,复杂度 \(\mathcal{O}(n)\)。
梦熊 NOI 模拟赛 #24 B. 翻转
套路性地将每个点的颜色异或上深度,那么操作就相当于移动黑色位置,显然,当两棵树黑色格子数量相同时,它对答案的贡献就是每棵子树内黑色节点数量的差的绝对值(不妨假设 \(1\) 为根,下同)。
初始时,第一棵树的问号都用 \(0\)(异或后,下同)来填充,第二棵树都用 \(1\) 来填充,假设此时第 \(i\) 个点的子树内在第一棵树中 \(1\) 的数量减去第二棵树中 \(1\) 的数量为 \(d_i\),问号的个数为 \(a_i\),那么它对答案的贡献就是 \(\sum\limits_{j=0}^{a_i}\dbinom{a_i}{j}\dbinom{a_1-a_i}{-d_1-j}|-d_i+j|\),这可以利用 LNOI 2022 盒一题中的方法进行优化,配合上 dsu on tree 即可做到 \(\mathcal{O}(n\log n)\),但是我懒了用莫队写了 \(\mathcal{O}(n\sqrt{n})\) 的算法,跑得飞快。
梦熊 NOI 模拟赛 #24 C. 染色
下述讨论都进行在模 \(p\) 意义的数域下。
记给定邻接矩阵为 \(E\),即求列向量 \(A\) 的个数使得 \(A^{\mathsf{T}}EA\equiv0\),注意到若设一 \(n\times n\) 的可逆矩阵 \(Q\),那么 \(QA\) 与 \(A\) 构成了一个双射,所以满足 \((QA)^{\mathsf{T}}EQA=A^{\mathsf{T}}Q^{\mathsf{T}}EQA\equiv0\) 的 \(A\) 的个数与 \(A^{\mathsf{T}}EA\equiv0\) 一致,故可将 \(E\) 替换为 \(Q^{\mathsf{T}}EQ\)。
显然,\(E_{i,j}\to E_{i,j}+E_{j,i},E_{j,i}\to 0\) 的操作不影响答案,接下来我们宣称,可以通过这种操作和若干初等矩阵的操作使得 \(E\) 变为下双对角矩阵。
考虑交换操作施加到 \(E\) 上就变成了交换两行后再交换对应的两列,乘法操作就相当于将一行乘以一个数后再乘上对应列,行加操作就相当于一行加上另一行乘上常数 \(k\),再将对应列也做同样的操作(由于矩阵乘法的结合律,顺序无关紧要)。
那么,我们类似高斯消元的过程,一列一列剥离掉行,不同的是我们要在对行操作的时候同时对列操作,且主元位于对角线 \(j=i-1\) 上,这可以在 \(\mathcal{O}(n^3)\) 的复杂度内完成。
此时,对于所有的边,都有 \(|i-j|\le 1\),直接 dp 即可,总时间复杂度 \(\mathcal{O}(n^3+np^3)\)。
更进一步的,可以通过将每个点都弄到一个自环上,做到 \(\mathcal{O}(n^3+np^2)\)(具体的,将 \(E_{n,n-1}\) 的数字平摊到两边后对减,然后递归,如果出现了 \(E_{n,n}=0\) 的情况,就可以把这一小条支链删掉)。
梦熊 NOI 模拟赛 #26
开场发现 A 怎么我做过。
然后 B 想了半个小时会了。
发现 C 是弱智题,但是好难写啊啊啊。
写了四个小时过了,AK 了。
梦熊 NOI 模拟赛 #26 A. 樱
套路性地取原根转化为加法,使用二进制分组后可以变成 \(\mathcal{O}(P)\) 次一个区间对另一个区间取或,而这可以使用线段树上二分以及哈希找到两个区间所有不同的位置,可以证明这就恰好等于 \(0\to 1\) 数量的两倍,均摊一下复杂度就是 \(\mathcal{O}(n+P\log^2P)\) 的了。
梦熊 NOI 模拟赛 #26 B. 月
如果给的是二分图而不是完全图就好了。
啊,费用流,做完了,真好。
欸…根据经典结论,我们可以拆点,将每个点拆成左部点和右部点。
由于 Mike and Fish 一题中的结论,我们总能让入度出度之差的绝对值不超过 \(1\)。
那我枚举最多 \(2^{\frac{n}{2}}\) 种拆点方式(更具体的,\(\dbinom{n}{\frac{n}{2}}\)),最后对于每种情况跑一个 MCMF 不就好了吗?
总时间复杂度 \(\mathcal{O}\left(\dbinom{n}{\frac{n}{2}}\cdot\operatorname{MCMF}\right)\)。
梦熊 NOI 模拟赛 #26 C. 风
通过一大堆分讨,我们可以把问题拆成三个我们已经解决过的问题:
- 对于给定树,求每个子树内和子树外的直径,以及删掉一个子树后的最深深度;
- 对于基环树上每个环的根节点,求出其子树外的点与它的距离的最小值;
- 给定若干个数对 \((a,b,c)\),每次询问给定 \(d\),求满足 \(b\ne d\) 且 \(c\ne d\) 的数对中 \(a\) 的最大值。
这些都可以做到 \(\mathcal{O}(n\log n)\) 甚至 O(n),然后就得劲写就好了。
梦熊 NOI 模拟赛 #27
开场会了 A,想了一个小时想到了 B 比较靠谱的做法但只有 \(95\) 分。
发现 C 是一个没啥部分分的很胖的 DS,写了 \(10\) 分跑路了。
再给 B 小数据拼了个暴力就过了。
梦熊 NOI 模拟赛 #27 A. 宝石
不妨将宝石按照 \(a_i+b_i\) 从小到大排序,那么我们一定可以按照顺序选。
我们扫描每个宝石,如果能选就选,否则如果它能以更小的代价替换掉之前的一个宝石就换掉,拿个堆处理一下就好了,总时间复杂度 \(\mathcal{O}(n\log n)\)。
梦熊 NOI 模拟赛 #27 B. Multum in Parvo
我会了,但是题解先咕。
梦熊 NOI 模拟赛 #27 C. 泡泡
咕。
云斗 NOI 赛前训练
云斗 NOI 模拟赛 #9
开场看完 A 就会了,写一发发现挂了。这时我注意到输入的 \(v\) 可能很大,这导致我们得给一些不想被增加的数加上 \(1\),此时发现自己求的是满足一个必要而非充分的条件的子集个数。改了一些 Bug 后居然能过最后两个样例?交上去居然有 \(70\)。什么,将 \(v>\dfrac{n}{2}\) 的情况倒过来考虑,就过了?你问我为什么,我也不知道啊。这个时候是 \(20\) 分钟。
一看 B,这不是我们八云蓝自动机吗?先写了暴力(得到边后暴力跳链),调了很久过了(忘记断已有的边了),花半小时把平衡树加上就过了(维护父节点关系挂了好多次,烦),这个时候比赛还剩三个小时,优势在我!
欸这个 C 是不是平凡的,很像我做过的一个 POI 题,先把外壳写了内层矩阵树定理暴力,一交 \(30\) 分。开始优化内层,发现那个题直接搬过来转移是 \(B_n\) 的,欸我好像可以在 dfs 序上 dp,写了一写发现过了,跑得还飞快,那 AK 了呀,下班!
云斗 NOI 模拟赛 #9 A. 脱单
可以证明,当 \(v\le\dfrac{n}{2}\) 时,可以将操作改为每轮选择至多 \(v\) 个数字加上 \(1\),假设 \(a_i\) 递减,我们枚举编号最小的的没有参加约会的人 \(a_i\),那么 \(i\) 前面的人都必须要参加约会。对于后面的每个人 \(j\),如果被选中参加约会,那么必须有 \(a_j+m\ge a_i\) 且 \(\sum(a_i-a_j)\le mv\),背包即可,时间复杂度 \(\mathcal{O}(n^2mv)\)。
云斗 NOI 模拟赛 #9 B. 交换比特
如果你做过一个叫做八云蓝自动机的题,你就会知道,可以将每次操作后的两个数建立一个点,每个点的前驱就是另一个数的上一次交换后对应的节点,那么每个点都有唯一的前驱后继,并且每次修改带来的前驱后继的修改量是 \(\mathcal{O}(1)\) 的。
为了方便,我们对于初始的 \(n\) 个数也建立对应的节点。
那么,我们就只需要支持维护一个链森林,支持动态加边删边,查询一个节点对应的根节点或一条链上最后一个位置不超过 \(x\) 的节点编号。一个暴力的想法是 LCT,但是你发现此时不需要虚实边之间的转化(因为树时刻是一条链),并且链上点编号递增,所以使用平衡树维护即可。
云斗 NOI 模拟赛 #9 C. 博得
如果你做过 POI 2014 的一个叫做 TUR-Tourism 的题,你就会知道,这种有关直径为常数的图的题要怎么做。
套路性的,(省略一部分步骤),我们将问题转化为了求给定图的生成树个数(直径为常数的性质仍成立)。我们求出图的任意一棵 dfs 树,考虑在 dfs 序上 dp 并维护当前点集的联通情况,那么我们只需要支持在当前维护的 dfs 栈中 pop、push,以及在 top 和栈中的一个点连边这三种转移,通过预处理所有可能的联通情况后(有贝尔数种状态),将每个状态压缩为一个正整数,单条转移即可做到 \(\mathcal{O}(1)\),总时间复杂度 \(\mathcal{O}((n+m)B_D)\),其中 \(D\le7\) 为图的直径,\(B_D\le877\) 为 \(D\) 对应的贝尔数。
云斗 NOI 模拟赛 #10
开场做了 2 个小时 A 过不去样例,很急。后来发现这个样例怎么对不上啊,询问了出题人并得到了肯定的回复,最后 3h 才过了。
尝试给 C 写个暴力,欸怎么 60pts,其实还有 20pts 可以拼但是先去做 B,还剩 1.3h 左右。
B 好像是个莫队板子,但是来不及写了,最后只能写个 16 分暴力跑路,最后 100 + 16 + 60 = 176。
upd:C 乱搞过了。
云斗 NOI 模拟赛 #10 A. 数树
你就考虑类似无标号无根树那样做,对于度数限制可以直接在 dp 状态里钦定父亲的状态,我的唐唐做法是 \(\mathcal{O}(n^4\log n)\) Barrett 硬卡过去的,相信聪明的你一定可以做的比我更优秀!
upd:std 在无特殊限制情况下是 \(\mathcal{O}(n^5\log n)\),我的评价是没我菜。
云斗 NOI 模拟赛 #10 B. 树数
咕。
云斗 NOI 模拟赛 #10 C. 树据结构
咕。
信友队
信友队 NOI 模拟赛 #4
信友队 NOI 模拟赛 #4 A. 情报传递
我们把一秒里的操作分为三步:0. 向左移动,1. 向右移动,2. 告诉一个人。
发现我们可以只关心两个量,即人数的数量和段数!那么段数就是根号级别的!
记 \(f_{t,i,j}\) 表示有 \(j\) 个“游离”段人(两两可区分),总共有 \(i\) 人的概率 \(p\) 和期望 \(E\) 构成的多项式 \(p+xE\),当前下一步进行第 \(t\) 阶段(\(0\le t\le2\)),那么我们有 \(f_{t,i,j}=\sum\limits_{k}f_{t-1,i-k,k}g_{k,j}(0\le t\le 1)\),其中 \(g_{k,j}\) 表示 \(k\) 段被缩合为 \(j\) 段的方案数(现在需要确定“游离段”的合并方案数了,具体的,\(g_{k,j}=\sum\limits\limits_{a,|a|=j,a_i\ge 1,\sum a_i=k}\prod a_i!\)),可以使用类似斯特林数的 dp 简单计算。
而 \(f_{0,i,j}\) 只需要枚举新的一个数“缩合”了两个段,“加长”了一个段,“新建”了一个段,还是“消失”在 \(i\) 个人中即可,这样的复杂度是 \(\mathcal{O}\left(n(\sqrt{n})^2\right)=\mathcal{O}(n^2)\) 的。
ARC
ARC 199
生气了,正经人哪有一天三场比赛的?但是 ARC 好久没办了,就打打玩了。
开场做 D,发现假了,然后看 A,突然意识到 key observation,然后过了。
觉得大概会了这个 B,但是好没意思,继续做 D,最后有一个根本写不出来的做法,不想写,摆了。
说到底…
兜兜转转还是在给自己找失败的借口啊。
需要保持对于比赛的敬畏之心,不然一天看着打了很多比赛实际上没有什么收获,最后只能在 NOI 考完后写忏悔录了。
Rank 130,生气了。
ARC 199 A Flip Row or Col 2
假设操作后的矩阵为 \(B\),那么注意到 \(B_1\oplus B_i=Z\),其中 \(Z_j=X_1\oplus X_i\),而由于 \(B_1\oplus B_i\) 和 \(A_1\oplus A_i\) 至多只有 \(\dfrac{n}{2}\) 位不同,所以可以唯一确定 \(X_1\oplus X_i\),同理可以确定 \(Y_1\oplus Y_i\),对于 \(\mathcal{O}(1)\) 种情况分别 check 一下即可,时间复杂度 \(\mathcal{O}(N^2)\)。
ARC 199 B Adjacent Replace
假设最后被异或的数的下标构成集合 \(S\),那么有结论,除非 \(S=\{1,3,5,\cdots\}\) 或 \(S=\{2,4,6,\cdots\}\),否则 \(S\) 都能被操作出来(可通过打表证明)。只需要钦定一对 \(i,i+1\) 使得它们在 \(S\) 中同时出现 / 不出现后用线性基处理即可,总时间复杂度 \(\mathcal{O}(N^2\log V)\)。
ARC 199 C Circular Tree Embedding
不妨假设 \(P_1\) 为单位排列并且 \(P_{i,1}=1\),将树看作是以 \(P_1\) 为根的有根树,那么将树看作是集合划分的过程,那么 \(\{i,i+1,\cdots,j\}\) 可以构成一个子树的充要条件是在所有 \(k\) 中,\(P_{k,i},P_{k,i+1},\cdots,P_{k,j}\) 排序后构成了一个值域上的连续段,预处理出所有合法子树后区间 DP 即可,时间复杂度 \(\mathcal{O}(N^2(N+M))\)。
ARC 199 D Limestone
假设 \(R_N\) 和 \(C_M\) 分别表示第 \(i\) 行 / 列向右 / 向下延申的格数,对于一个最终网格 \(a\),我们将其对应到 \(R_i\) 和 \(C_i\) 都尽量大的 \(R\) 和 \(C\) 上。
假如我们已经知道了 \(C\),那么相当于有若干个格子被强制为 \(1\),若干个格子被强制为 \(0\),并且 \(R_i\) 会有若干个禁忌位置(不能恰好停在一个 \(1\) 前面)。所以考虑 dp,记 \(f_{N,M}\) 表示现在考虑有一个 \(N\) 行 \(M\) 列的网格,并且这 \(M\) 列都已经“断掉了”(\(C_i<N\))的方案数,那么有转移 \(f_{N,M}\times\dbinom{M'+1}{M}\to f_{N+1,M'}\)(钦定第一个 \(C_i=N-1\) 的位置,使用插入法计算组合数,这是一个范德蒙德卷积的形式)。
同理,我们再记 \(g_{N,M}\) 表示所有情况对应的格子数量和,那么 \(g\) 也可以类似 \(f\) 转移,时间复杂度 \(\mathcal{O}(NM^2)\)。由于答案关于 \(N,M\) 对称,所以当 \(N>M\) 的时候可以交换 \(N,M\),这样的复杂度是是不超过 \(\mathcal{O}\left((NM)^{1.5}\right)\) 的,可以通过。
JOISC
JOISC 2023
JOISC 2023 Day1 B. Festivals in JOI Kingdom 2
这道题实在是太牛了,其中妙处不可言传,我也不配讲这个题,最后时间复杂度 \(\mathcal{O}(N^2)\),最后 Barrett 卡过去的。
哦,Barrett,有了你,生活美好,没烦恼!Barrett 约减,奇妙至极,最棒算法,人人赞叹你!
JOISC 2023 Day1 C. Passport
对于每一个点上面的护照,我们建立一个点,表示如果激活了这个点,那么就可以走到它所对应的区间,而这可以使用线段树优化建图来建出这些出边,并把这个点向对应的护照连一条权值为 \(1\) 的边。
那么我们发现,对于一个点走到 \(1\) 和 \(N\) 的路径,它们的总代价就是这两条路径的并的边权和,我们考虑枚举这个分裂点,具体地,分别求出每个点(包括护照)到 \(1\) 和到 \(N\) 的最短路,并将一个点的距离赋值为这两个距离的和,再进行松弛即可,时间复杂度如果使用 01 bfs 实现的话就是 \(\mathcal{O}(N\log N)\) 的,我使用 Dijkstra 实现做到了 \(\mathcal{O}(N\log^2N)\)。
JOISC 2023 Day3 B. Cookies
根据某著名结论,假如最后选择的 \(B_i\) 从大到小排序后为 \(q_1\ge q_2\ge\cdots\),给定的数字分别为 \(p_1,p_2,\cdots\),那么存在一种分配方案当且仅当 \(\sum p_i=\sum q_i\) 且对于任意 \(k\le|q|\),都有 \(\sum\limits_{i=1}^{k}q_i\le\sum\min(p_i,k)\)。
所以从大到小 dp 即可,将 \(B\) 从大到小排序后,记 \(f_{i,j,k}\) 表示了考虑了前 \(i\) 个数,当前选了 \(j\) 个,和为 \(k\),是否可行,那么有 \(k\le\sum\min(p_x,j)\) 并且 \(b_i\times j\le\sum p_x\),所以合法的状态数量是 \(\mathcal{O}(N^2\log N)\) 的(视 \(N,M,\sum A_i\) 同阶),使用 bitset 优化即可做到 \(\mathcal{O}\left(\dfrac{N^2\log N}{w}\right)\)。
杂题
云斗题单
CCPC 2023 北京市赛 B. 替换
手写 bitset 维护板子题,时间复杂度 \(\mathcal{O}\left(\dfrac{n^2}{w}\right)\)。
IOI 2022 国家集训队互测 Round 2 A. 序列
详见 IOI 2021 & 2022 中国国家候选队 / 集训队互测做题记录。
ARC 160 E Make Biconnected
当叶子个数(记为 \(N\))为偶数的时候,将叶子按照 dfn 序排序后,将第 \(i\) 个节点与第 \(i+\dfrac{N}{2}\) 个叶子连接即可。否则,答案的下界为叶子权值之和加上全局 \(w_i\) 最小值,考虑何时取到,发现只需要这个最小值(不包括这个点)和任意一个叶子节点之间经过至少一个三度点即可,发现除了一个菊花(每个上面套个链)以外都可以,所以不合法的点的数量是 \(\mathcal{O}(1)\) 的,对每个暴力 check 即可,时间复杂度 \(\mathcal{O}(N)\)。
ABC 226 H Random Kth Max
转成对值域积分即可,对 \(\mathcal{O}(n)\) 段分别背包 dp,复杂度 \(\mathcal{O}(n^4)\)。
QOJ8593 Coins
考虑一个位置被确定的充要条件就是每个点都和它单向可达,不妨假设 \(x_i<y_i\),假设出可达关系构成的任意一棵 dfs 树,那么条件变为它之后的每个点对应的编号最大出边都大于等于这个点,在它前面的点也同理。
使用线段树维护并动态更新答案即可,总时间复杂度 \(\mathcal{O}(n\log n)\)。
九省联考 2018 IIIDX
可以从小到大贪心确定答案,然后动态判断有无解。
这个东西就是个 Hall 定理形式,所以用线段树维护就好了。
时间复杂度 \(\mathcal{O}(n\log n)\)。
其它
FJOI 2019 靠谱的预言家
关于本题,目前我只会 \(\mathcal{O}(\text{Ans})\) 的算法,但是如果你不幸出生于风井省,你就会知道在风井省选中,往往,“数据有一定梯度”。
先特判 \(p\ge q,p\le 0.5,q=1\) 的特殊情况。
当有 \(2n+1\) 个预言家时,预言正确人数的生成函数为 \(f_n=(1-p+px)^{2n+1}\),成功的概率为 \(P_n=1-\sum\limits_{i=0}^{n}[x^i]f_n\),求导并比较系数可得 \(P_n=P(n-1)+\dbinom{2n-1}{n}p^n(1-p)^n(2p-1)\),故从小到大枚举 \(n\) 即可并在 \(P_n\ge q\) 时跳出循环即可。
Google Code Jam 2015 Round 3 D. Log Set
绝世好题!考虑将每个物品写作一个 \(1+x^{a_i}\) 的多项式,那么给定的就是它们的乘积。不妨先把 \(a_i\) 中的 \(0\) 剥离掉(\(0\) 的个数就是最小值的个数的 \(\log\)),注意到若假设当前最小值为 \(a\),次小值为 \(b\),那么当前绝对值最小的数的绝对值一定为 \(b-a\),然后可以将其剥离掉得到下一个子问题。
此时,我们得到了所有数的绝对值构成的可重集合,现在相当于要选择若干个数设置为负数,使得它们的和等于初始集合中的最小值。这相当于是一个背包问题。发现由于输入的多项式项数不大,所以可以直接暴力 dp!就是排序后对于每个前缀以(数字,出现次数)的形式记录下来它的幂集信息,然后从大到小贪心,能设置为负数就设置为负数,然后把这个数的贡献从背包中减掉,一直这样做就好了。
总时间复杂度 \(\mathcal{O}(|S|P)\)。
BZOJ 2839 集合计数
快使用二项式反演,哼哼哈嘿,数学无敌!
但是确实是二项式反演模板,答案为 \(\left(\sum\limits_{i=m}^{n}\dbinom{n}{i}\dbinom{i}{m}(-1)^{i-m}2^{2^{n-i}}\right)-[n=m]\),时间复杂度 \(\mathcal{O}(n)\)。
LOJ 6358 前夕
快使用单位根反演,哼哼哈嘿,数学无敌!
但是确实是单位根反演模板,答案就是对于上述问题,所有满足 \(4\mid m\) 的 \(m\) 所对应的答案之和,我都讲到这里了,剩下的部分,小哥哥应该不至于不会吧?时间复杂度 \(\mathcal{O}(n)\)。
TJOI 2015 概率论
我记得我刚入门的时候(2019-09-26 12:42)抄了个式子过了这个题,今天回过头来看发现是弱智题,儿时射出的子弹正中我的眉心。
考虑记 \(f_i,g_i\) 分别为 \(i\) 个点的树的个数以及叶子数量之和,并记 \(F,G\) 为 \(f,g\) 的 OGF,那么 \(F=\dfrac{1-\sqrt{1-4x}}{2x}\),并且 \(g_n=2\sum\limits_{i=0}^{n-1}f_ig_{n-1-i}(n\ne 1)\),故 \(G(x)=2xF(x)G(x)+x\),所以 \(F(x)=\dfrac{x}{\sqrt{1-4x}}\)。
观察得 \(F(x)=x(xG(x))\),所以 \(f_n=\dbinom{2n-2}{n-1}\),故答案为 \(\dfrac{f_n}{g_n}=\dfrac{n(n+1)}{2(2n-1)}\),可以 \(\mathcal{O}(1)\) 计算。
LOJ 6538 烷基计数 加强版 加强版
假设答案序列的 OGF 为 \(F\),其中 \(f_0=1\),施以 Burnside 引理,我们容易得到 \(F(x)=1+\dfrac{x}{6}\left(F(x)^3+3F(x^2)F(x)+2F(x^3)\right)\),使用牛顿迭代求解即可,时间复杂度 \(\mathcal{O}(n\log n)\)。
P6597 烯烃计数
考虑把碳碳双键断开,那么我们就会得到两个烷基,但是这里它们的根节点的度数限制为 \(2\),需要特殊处理一下,然后把这两半用 Burnside 合并一下即可,时间复杂度 \(\mathcal{O}(n\log n)\)。
P6598 烷烃计数
考虑枚举树的重心,发现这就是一个 4 - Multiset 变换,可以直接 Burnside 算,然后再容斥一下去重就好了,时间复杂度 \(\mathcal{O}(n\log n)\)。
CF932E Team Work
答案为
\(\mathcal{O}(k^2)\) 递推出第二类斯特林数后直接计算即可,时间复杂度 \(\mathcal{O}(k^2+\log P)\)。
QOJ9663 Reverse Pairs Coloring
一个等价的转化是将一个位置左边和上面的格子都加上 \(1\),最后黑格子就是矩阵中的所有 \(2\)。
考虑从下到上扫描这个 \(n\times n\) 的网格,再考虑另外一个数组 \(b\),那就相当于将 \(b\) 的前缀烙印在矩阵 \(a\) 上,再将 \(b\) 对应位置染黑,由于不会出现以下构型:
01
10
所以只需要维护每个连续段中的第 \(1\) 个 \(1\),扫描时将答案加上 \([a_{i+1},a_i]\) 中 \(1\) 的个数即可,用树状数组维护时间复杂度 \(\mathcal{O}(n\log n)\)。
P6596 How Many of Them
看到管理组在争论这道题应该评紫还是评黑。有人觉得应该降紫,但是某选手说这个题很难,我就打算做做。
现在是 21:30,我开始做了。
现在是 21:36,我过了。
哦我 \(\mathcal{O}(n^3)\) 怎么数据范围才 \(50\) 啊?标程有点菜的。
我觉得一个 CSP-T2 都不会的选手 6 分钟就过了,评个红应该不过分吧?
Top Tree

主要阅读了本文,还没读懂。
福建 2025 学考
挑选出一些精品题目,希望大家来体验一下。
- 食醋、花生油、蔗糖中,有酸味的是____,属于油脂的是____,化学式为 C12H22O11 的是____。(某幽默选手:我用排除法做了好久,最后二选一选择了蔗糖是油脂)
- 研究化学的科学家是____(填写职业名称)。
好像地理也有很多难绷题,生物没有,可惜了。

浙公网安备 33010602011771号