Edu 106 题解
A贪心填。先尽量填竖着的再填横着的。因为这样最多会浪费 $1$ 个,所以达到了答案的上界。求出上界判断是否 $\leq$ 即可。B枚举一个位置 $i$,前面只保留 $0$ 后面只保留 $1$,判断是否合法即可。C首先第一步横着走还是竖着走都是一样的。我们设第一步横着走。那么横着走只可能用奇数位置的 $c_i$,竖着走只可能用偶数位置的 $c_i$。枚举总共有几段,然后贪心选择最小的即可。注意...
A贪心填。先尽量填竖着的再填横着的。因为这样最多会浪费 $1$ 个,所以达到了答案的上界。求出上界判断是否 $\leq$ 即可。B枚举一个位置 $i$,前面只保留 $0$ 后面只保留 $1$,判断是否合法即可。C首先第一步横着走还是竖着走都是一样的。我们设第一步横着走。那么横着走只可能用奇数位置的 $c_i$,竖着走只可能用偶数位置的 $c_i$。枚举总共有几段,然后贪心选择最小的即可。注意...
A. 寿司晚宴暴力 dp 是设 $f_{S_1,S_2}$ 表示两个人选的质因子的集合,转移直接预处理每个数的集合转移。这种题肯定是按照 $\sqrt n$ 分类讨论:对于 $\leq \sqrt n$ 的质数只有 $8$ 个,先状压,然后将其他的数字,如果最大的质因子 $> \sqrt n$ 就按照这个分类。显然每一类如果要选肯定都只会选给同一个人,所以对每一类先预处理 $g_{S}...
因为某些原因晚了半小时打,然后就疯狂挂题,从前二(或许?)挂到了倒一A可以考虑哈希。这里可以给每个值随机一个哈希值,合并操作定义为异或。考试的时候写的N模好像 T 飞了。。事实上这个数据一模数就能过#pragma GCC optimize("Ofast") #include <bits/stdc++.h> #define fi first #define s...
A如果长度为 $2$ 特判,否则将第一个数和剩下的数分开。B$B$ 进制下正整数的数根等价于 $\pmod {B-1}$,注意这里 $0$ 对应的答案是 $B-1$。所以答案是 $(k-1)B+x$。C双指针扫出所有相同的段,每段取前 $k$ 大即可。D观察一下发现只需要枚举 $x|n$,然后前缀和预处理+判断所有矩阵是不是全 $0/1$ 矩阵即可。时间复杂度分析一波:先考虑行的贡献,枚举的...
A假设 $a \geq b$树状数组分开维护就好了。#include <bits/stdc++.h> #define fi first #define se second #define db double #define U unsigned #define P std::pair<int,int> #define LL long long #define pb ...