A - Maximum Multiple 题意:给出一个n 找x, y, z 使得$n = x + y +z$ 并且 $n \equiv 0 \pmod x, n \equiv 0 \pmod y, n \equiv 0 \pmod z$ 并且使得 $x \cdot y \cdot z$ 最大 思路:设$a = \frac{n}{x}, b = \frac{n}{y}, c = \frac{n}{z}$ 那么 $\frac{1}{a} + \frac{1}{b} + \frac{1}{c} =…
A - Absolute 留坑. B - Counting Permutations 留坑. C - Cover 留坑. D - Game puts("Yes") #include <bits/stdc++.h> using namespace std; int n; int main() { while (scanf("%d", &n) != EOF) { puts("Yes"); } ; } E - Hack It 留坑.…
A - Problem A. Ascending Rating 题意:给出n个数,给出区间长度m.对于每个区间,初始值的max为0,cnt为0.遇到一个a[i] > ans, 更新ans并且cnt++.计算 $A = \sum_{i = 1}^{i = n - m +1} (max \oplus i)$ $B = \sum_{i = 1}^{i = n - m +1} (cnt \oplus i)$ 思路:单调队列,倒着扫一遍,对于每个区间的cnt就是队列的长度,扫一遍即可. #include<…
A - Problem A. Integers Exhibition 留坑. B - Problem B. Harvest of Apples 题意:计算$\sum_{i = 0}^{i = m}C(n, i)$ 思路:由$sum_{i = 0}^{i = m}C(n,i)$可以得到$sum_{i = 0}^{i = m + 1}C(n,i)$以及$sum_{i = 0}^{i = m}C(n + 1,i)$然后用莫对算法求解 #include<bits/stdc++.h> using nam…
A - Always Online Unsolved. B - Beautiful Now Solved. 题意: 给出一个n, k  每次可以将n这个数字上的某两位交换,最多交换k次,求交换后的最大和最小值 思路: 很明显有一种思路,对于最小值,尽可能把小的放前面, 对于最大值,尽可能把打的放前面.但是如果有多个最小数字或者最大数字会无法得出放哪个好,因此BFS一下即可 #include<bits/stdc++.h> using namespace std; const int INF =…
A - oval-and-rectangle 题意:给出一个椭圆的a 和 b,在$[0, b]中随机选择c$ 使得四个顶点在椭圆上构成一个矩形,求矩形周长期望 思路:求出每种矩形的周长,除以b(积分) #include<bits/stdc++.h> using namespace std; const double PI = acos(-1.0); double a, b; void RUN() { int t; scanf("%d", &t); while (t-…
A - Age of Moyu 题意:给出一张图,从1走到n,如果相邻两次走的边的权值不同,花费+1, 否则花费相同,求最小花费 思路:用set记录有当前点的最小花费有多少种方案到达,然后最短路 #include<bits/stdc++.h> using namespace std; const int INF = 0x3f3f3f3f; ; struct Edge{ int to, nxt, val; Edge(){} Edge(int to, int nxt, int val):to(to…
A - Character Encoding 题意:用m个$0-n-1$的数去构成k,求方案数 思路:当没有0-n-1这个条件是答案为C(k+m-1, m-1),减去有大于的关于n的情况,当有i个n时的种类为C(k+m-1-i*n,m-1)个,利用容斥定理可得 #include<bits/stdc++.h> using namespace std; typedef long long ll; ; ; ll fac[maxn]; ll inv[maxn]; ll invfac[maxn]; vo…
A - Rikka with Nash Equilibrium 题意:构造一个$n * m$的矩阵,使得$[1, n * m]$ 中每个数只出现一次,并且纳什均衡只出现一次. 思路:从大到小的放置,每一个都可以拓展一行拓展一列或者放在已经拓展的行列焦点,用记忆化搜索/dp即可 #include<bits/stdc++.h> using namespace std; typedef long long ll; int n, m; ll p; ll dp[][][ * ]; ll DFS(int…
A - Problem A.Alkane 留坑. B - Problem B. Beads 留坑. C - Problem C. Calculate 留坑. D - Problem D. Permutation 留坑. E - Problem E. TeaTree 题意:每个点会存下任意两个以他为LCA的点对的GCD,求每个点存的GCD的最大值 思路:DSU on tree  用 set 维护子树中的因子,对于重儿子不要处理多次 每次查找的时候,枚举轻儿子中的因子 还有一种线段树合并的写法 #i…