距离 NOIP2024 还有 31 天
arc181_c:
按行的字典序大小,每一行比上一行多一个 \(1\),选在未选过的列的字典序最大的那一列。
arc180_b
贪心感觉很妙,但是感觉还是官解比较好理解。
我们定义序列 \(pos\),满足 \(pos_{p_i}=i\),那么每次交换其实就是找一对 \((i,j)\) 满足 \(1\le i<j\le n\) 且 \(pos_i-pos_j\ge k\),然后我们从左往右扫 \(j\) 同时找出一直能换到的最左边的 \(i\),这么交换就可以了,这样好像也是贪心(
arc179_c
比较唐的交互,贪心每次选最大最小一定合法,所以归并排序之后处理就好了。
arc176_a
错解过了,但是对角线应该不难想吧。
arc186_b
感觉相当难想啊,怎么评分那么低。
首先如果边的方向表示小于关系的话,对于每个 \(i\) 我们连一条 \(A_i\) 指向 \(i\) 的边,形成一棵以 \(0\) 为根的外向树。
设 \(x\) 的儿子为 \(c_1,\dots,c_k\),那么我们有
- \(P_{c_i} > P_x\)
- \(\forall c_1<\dots<c_k,P_{c_1} >\dots>P_{c_k}\)
这样能完美对应我们题目限制的大小关系,然后树形 \(dp\) 转移就好。
arc178_c
少数自己切掉的题。
首先把 \(B\) 从小到大排个序,那么一个数的贡献系数就确定了,由于数组单调不降,那么其实就是每次给一段后缀加 \(1\),即加上一段后缀的贡献,后缀个数是根号量级的,直接跑完全背包就好了。
arc174_c
只能想到状态应该设当前出现了几种不同的数,式子好像不是很难推,还好我直接贺式子了。
arc166_c
又是把互不影响的分成不同的组,感觉要长点记性了。
互相影响的形如下图的折线,每条折线的方案数是固定的,可以提前预处理出来。
预处理的话就是你当前这段折线选了,上一段就不能选,这段不选,上段选不选都可以,写成式子就是 \(f_i=f_{i-1}+f_{i-2}\),没错是斐波那契。
然后同时预处理前缀积中间相同的段再写个快速幂就好了。