题解914b cf
CF1039D You Are Given a Tree
CF1039D You Are Given a Tree 更好的阅读体验 一种神奇套路:对答案根分,根分的依据是链的长度和答案大致是一个成反比的关系。 考虑确定了 \(k\) 怎么做。因为一个点只能在一条链里,所以 dfs 的时候如果能拼成一条链就一定会拼成一条链,不然就把贡献传给父亲继续尝试。 对 ......
Sasha and Array 题解
Sasha and Array 题目大意 给定一个长为 \(n\) 的序列 \(a\),支持以下操作: \(\forall i \in[l,r],a_i\gets a_i +x\)。 求 \(\left(\sum\limits_{i=l}^{r}F_{a_i}\right)\bmod (10^9+7 ......
CF GYM 104020 G
link 首先,因为 \(w_i\le 10^6\),有点大,所以我们想方设法把他变小一点。 设一个快为 \(w_i=k\times x+r\)。其实,如果我们把他分为 \(x\) 个大小为 \(k\) 的块,然后一个大小为 \(r\) 的块是最优的。因为切成其他的大小的块,我们可以调整成这种切法, ......
[CF576E] Painting Edges
Painting Edges 动态加边和二分图容易想线段树分治,分别维护 k 种颜色的并查集。 不过每条边的存在时间不能确定。 设边 i 的两次操作的时间为 \(x_i,y_i\),那么对于 \(t\in[x_i+1,y_i-1]\) 有两种情况,颜色改变或改色不变。 则我们把每次操作影响的时间放在 ......
第四届辽宁省大学生程序设计竞赛部分题解
2023辽宁省赛 A:欢迎来到辽宁省赛 题目描述 小Z躺在床上看了看表 , 现在是13:30 , 2023辽宁省大学生程序设计竞赛的报名将会在 14:00 截止。 然而不急 , 省赛的参赛队伍还没有向他提交名单。小Z知道 , 只要 3 分钟他就可以完成报名 , 完成汇款。 现在他想知道 , 队伍要在 ......
[ABC326D] ABC Puzzle 题解
题意: 给定整数 \(N\),字符串 \(R,C\),构造满足以下条件的 \(N\times N\) 矩阵: 1.每一行和每一列中 \(A,B,C\) 各有且仅有一个。 2.第 \(i\) 行的第一个字母等于字符串 \(R\) 的第 \(i\) 个字符。 3.第 \(i\) 列的第一个字母等于字符串 ......
CF1025F Disjoint Triangles
虽然我不懂计算几何,但是两个三角形互相进入,感觉很涩啊! —— By 【】 考虑两个互不相交的三角形,寻找一个方式能够不重不漏地统计它们。 容易发现两条不交的线段 \(A_1A_2,B_1B_2\) 之间,必然存在一条直线将 \(A_1A_2,B_1B_2\) 分在直线两端,且与 \(A_1A_2, ......
CF908H New Year and Boolean Bridges
这说明你那破子集卷积不是万能的。 显然题目要求的图 \(G'\) 是弱联通的,考虑给出的图 \(G\) 中两个点 \(i,j\) 之间 \(G_{i,j}\) 的条件转化为: \(G_{i,j}=\mathtt A\),说明 \(i\) 能到 \(j\) 且 \(j\) 能到 \(i\),则 \(i ......
P4067 [SDOI2016] 储能表 题解
[SDOI2016] 储能表 - 洛谷 题目详情 - [SDOI2016] 储能表 - BZOJ by HydroOJ 一道很好的数位 dp 题 不过这题有一个比较有意思的性质:当 \(n,m\) 为 \(2^k\) 的形式时,最终得到的数组对每一行排序后为 \(0 \sim m-1\) 的排列,如 ......
11 月杂题题解
B1031 T3 区间 波神说这很板,破防了。 考虑如何维护区间的并。 离线,然后扫描线,并把询问挂到右端点。 从左往右,考虑加入一条线段的影响。 假设现在加入第 \(i\) 条线段,对于 \(j\leq i\),维护 \(f(j)\) 表示线段 \(j\sim i\) 的并的长度。 某段位置上一次 ......
8VC Venture Cup 2016 - Final Round (CF627)
A. XOR Equation 最低位没有加法进位产生的影响,考虑从低位向高位 dp。 设 \(f_{i,0/1}\) 表示正在考虑第 \(i\) 位,前 \(i-1\) 位都满足限制,有无进位的方案数。 转移的时候枚举这一位两个数分别填 \(a,b\),\(x_i\) 表示 \(x\) 在二进制下 ......
CF484D Kindergarten
CF484D Kindergarten 题目描述: 有一组数,你要把他分成若干连续段。每一段的值,定义为这一段 数中最大值与最小值的差。 求一种分法,使得这若干段的值的和最大。 数据范围: \(N < 10^6\), \(a[i] < 10^9\)。 思路: 仔细手摸几组数据,你会发现,我们将原序列 ......
11月3号晚上测试题解
3954 Problem A 变量交换输出 #include <stdio.h> int main() { int a,b,c,x; scanf("%d%d%d",&a,&b,&c); //假设a,b,c分别为1,2,3;选择一个中间值进行数值替换 x=a; //把a赋值给x,此时x就等于a的值为1 ......
CSP-S 2023 题解
CSP-S 2023 题解 T1 密码锁 观察到锁的状态数量很少,可以考虑暴力搜索每一个状态判断合法性。令 \(k=10\),时间复杂度 \(O(10^k\times k)\)。 code #include <iostream> #include <cstdio> #include <cstring ......
CF练习题17(DP)
Chocolate Bar 我们看到 \(n,m\le 30\) 想到暴搜。 考虑枚举分割线,一直到刚好满足需要或者只有一个巧克力的情况。 随手跑了个最优解。 inline int dfs(int n,int m,int k){ if(n*m==k)return 0; if(k<=0)return ......
CF1874F Jellyfish and OEIS 题解
题目链接 不明白出题人的脑回路是不是被宇宙射线改变过 /jy。 题目给出了若干个区间,要我们计算满足每个区间都不是对应下标的排列的数量,正着计算不满足要求的数量是困难的,我们将其容斥,转化为钦定一些区间要求其必须满足它是对应下标的排列,在下文中,我们称这样的区间为一个约束。 我们设约束的集合为 \( ......
CF1866G
link 每个车厢的人可以到的是一段区间。 题面显然提示二分答案,二分答案 \(x\),每个车厢可以承受 \(x\) 个人,考虑如何 check 每个人能否都能到一个区间。 有一个比较显然的网络流来 check 的做法,原点向每个车厢连流量 \(a_i\) 的边,每个车厢向自己能到的区间连边,然后每 ......
CF1454F
link Soltion: 有一个比较显然的 \(O(n^2)\) 做法,枚举中间区间的左右端点,然后用前后缀 \(\max\) 和 st 表查询中间的 \(\min\),其实不用 st 表也行,确定左端点枚举右端点的时候顺便求一下就好。 考虑枚举左端点,以一个较快的方法求出右端点。 发现后缀 \( ......
题解 P6560 [SBCOI2020] 时光的流逝
题解 P6560 [SBCOI2020] 时光的流逝 首先考虑图上的点为 \(y\) 终点时,或者这个点无法继续向下走,即 \(du_i = 0\) 时,从这个点为起点先手必败,而对于每一个有一条指向先手必败的点的边的点,显然从这个点出发都是先手必胜的,以此类推。 可以考虑建反图,进行拓扑排序,转移 ......
CF600E Lomsat gelral
树上启发式合并(dsu on tree)通常用来查询不带修的子树信息,信息要求可合并。 对于一个结点 \(u\),其步骤如下: 求解其轻儿子的答案,同时清除递归产生的影响。 求解其重儿子的答案,保留递归产生的影响。 将轻儿子子树内的每个结点都合并进答案中,同时成为以 \(u\) 为根的子树产生的影响 ......
[CF576D] Flights for Regular Customers
CF576D 把矩阵定义为 \(f_{t,i,j}\) 表示恰好 t 步后 i,j 是否可达,则广义乘法为 \[f_{t+1,i,j}=\sum_{k=1}^{n}f_{t,i,k}\wedge f_{1,k,j} \]因为是或操作,所以 \(f_{i,j}=1\) 时答案或上另一个乘数的第 j 行 ......
CF1451
CF1451 Subtract or Divide 显然 如果为偶数 那么我们将它变到 \(2\) 再 \(-1\) 即可 如果为奇数 我们先 \(-1\) 再转化为偶数的情况即可 对于 \(n\le 3\) 进行特判 #include <bits/stdc++.h> using namespace ......
CF708C Centroids
对于一个不是重心的点 \(u\),它必定有一棵子树 \(T\) 包含所有重心(如果有两个重心则它们必定相邻),显然 \(|T|>\lfloor\frac{n}{2}\rfloor\),这阻碍了它成为重心。贪心地想,我们要在 \(T\) 中找出一棵子树 \(S\) 使得 \(|S|\leq\lfloo ......
题解 [ARC149B] Two LIS Sum
题解 [ARC149B] Two LIS Sum 大胆猜结论,按照 \(a\) 数组为关键字进行排序,求更改后 \(b\) 的 \(LIS\) 。 证明:每次移动,都有 \(a\) 中增加一个长度, \(b\) 中贡献可能为 \(\{-1,0,1\}\) , 总体贡献为 \(\{0,1,2\}\) ......
CF1764D Doremy's Pegging Game 组合数学
CF1764D Doremy's Pegging Game 你怎么连简单题也不会? 考虑满足条件当且仅当有连续的n/2向下取整段被删除。 考虑最终状态一定是一次删除联通了两个连续段,然后结束。 我们枚举这个连续段的长度 i 。 最后一个删除的位置有 n/2下取整*2-i 种方案,设另外删除了 j 种 ......
CF1870D Prefix Purchase 题解
Problem - 1870D - Codeforces Prefix Purchase - 洛谷 先说一个我想的错误的贪心:先用单调栈把原序列构造成单增序列,选出 \(\lfloor \frac{K}{c_i} \rfloor = \lfloor \frac{K}{c_1} \rfloor\) 的 ......
CF1872E Data Structures Fan 题解
CF1872E 翻译 请把数据加强到 \(\sum n \leq 10^8\) 后重新思考。 我们维护全局中被标记的所有点的异或和。发现对于一次 \(1\) 操作,相当于让答案异或上区间的 \(a_i\) 异或和,因为这会让被标记的点变成没被标记的,而没被标记的点会产生贡献。 查询的话直接查询即可 ......
P2391 白雪皑皑 题解
一种很新的区间染色 题目传送门 题目大意 有 \(n\) 个数初始都为 \(0\) ,有 \(m\) 次操作,第 \(i\) 次将 \((i \times p + q) \bmod n + 1\) 与 \((i \times q + p) \bmod n + 1\) 之间数都改为 \(i\) ,问 ......
P4397聪明的燕姿 题解 & Miller~Rabin 质数判定
涉及质数的时间复杂度都是玄学的。 ——题记 传送门 由整数唯一分解定理:\(\coprod\limits_{i=1}^{k}p_i^{c_i}\) 有该正整数的正约数为:\(\coprod\limits_{i=1}^k(\sum\limits_{j=0}^{c_i}p_i^j)\) 即我们要求有多少 ......
Codeforces Round 906 Div. 1 (CF1889)
貌似现在发周六的 CF 题解已经失去了时效性,不过问题不大。 A. Qingshan Loves Strings 2 Description 定义一个长度为 \(k\) 的 \(01\) 串 \(s\) 是好的,当且仅当 \(\forall i\in [1,k],s_i\neq s_{k-i+1}\ ......