Weekly Recorded
初星逝者
·
·
个人记录
补题。
abc345_d:暴搜,但是有一些 trick。
$Solution~2$ : 全排列每个方块,然后通过直接填左上角来判断该排列是否合法,不必要 $O(1)$ 判断,但是加上也可以。
对于 $n\le10$ 的题目应该跟位运算脱不了关系。
[abc345_e](https://atcoder.jp/contests/abc345/tasks/abc345_e):一眼 $dp$ ,但是解法较为复杂。
$dp$ $O(n\times k^2)$ 显然,考虑优化。
感觉当前的转移应该不会和太前面的状态有太大关系,能不能只进行最大值和次大值不同颜色的球之间的转移呢?
那么就尝试记录每一次 $dp[i][j][0/1]$ 的最后一个球的颜色 $c[i][j][0/1]$ 就可以进行转移了。
判断烦人,建议 $sort$。
[abc345_f](https://atcoder.jp/contests/abc345/tasks/abc345_f):一个连通块一个连通块的去判断,搜出一棵生成树,每次去删最外围的点和边即可。感觉会比 $E$ 和 $D$ 的代码量简单一些。
当然题目中 $k$ 为奇数是无解的。
本场难度惊人。
关于题目是否可以倒序解,满足以下几点要求即可。
- 题目关系有顺序限制。“顺序”为决定题目答案的关键因素之一。
- 倒序方便
- 能从最后一个关系推到倒数第二个关系,直至第一个关系
3.30
本周记录:
- 大%你调不会
- 二分判不会
- 逐渐唐氏
[abc346_f](https://atcoder.jp/contests/abc346/tasks/abc346_f):
凭自己能力做出来的 $f$ 题,首先数据范围大,$n \le 10^{12}
那么你要求出来 k ,肯定得二分。
二分的同时要记录第 i 个字符 c 字符出现的位置,前缀和即可。
md被hack了调半天才调出来
abc346_g:
令一个三元组 $(a,b,c)$ 为 $pos_{x_{i-1}},i,pos_{x_{i+1}}$ 。
每次更新的时候先添加当前的 $(i,x,y)$ 为 $[x ,y-1]+1$。
然后先删除当前的 $(x,i,y)$ 为 $[i ,y-1]-1$。
最后统计所有区间内所有出现次数大于等于 $1$ 的点。
-----
如果 $dp$ 能写记忆化,那就写记忆化。
大写字母转小写字母异或 $32$。
线段树 $pair$ 维护区间出现次数最小的数和个数。