Loading

校内阴间 NOIP 模拟赛一句话总结 Part II

11.21

  • 组合:建图然后跑欧拉路。
  • 小 Y 的魔术:考虑组合意义。
  • 小 Y 的图:Kruskal 生成树板子题……
  • 小 L 的数(码农题):\(O(45^3)\) 枚举方案,dp 判定可行性。

11.23

  • 简单题:观察性质,注意到 \(A,B,C\) 的和不变,然后就快速幂。考场上脑子坏了还想了快 1h……
  • 斗地主(好题):考虑对同一张牌的两个数字连边。一个显然的事实是当一个连通块边数大于点数一定可以构造一个外向树满足方案。当点数恰好等于边数则此连通块中的所有点不能同时出现在一个询问里,用主席树维护。
  • 变化的树:跑 dfs 序+树状数组就可以代替树剖了。
  • 炼金术:考虑组合意义。

11.25

  • 最大 K 段和(经典题):考场写了个很真的假贪心拿了满分…… GQY xjb 乱贪居然也 A 了……
    正解是 wqs 二分,也可以模拟费用流转化为线段树的最大子段和问题。
  • 双端队列xLIS问题:转化一下就可以直接跑 LIS 了。
  • 最大前缀和:卡特兰数。

11.26

  • laotui:思维烂题,字符串模拟。

  • clash:区间 dp,还特么卡常

  • mc:平衡树维护智商值、启发式合并、时间倒流 Trick。问题是 ntm 数据有问题搞我一下午???
    (其实用 map 更简单,我脑残了)

11.27

  • 四个质数的和:Meet in middle。
  • 匹配最大异或(好题+臭题):分治。可以证明一个 \(p\) 序列合法当且仅当满足以下两个条件之一:
    - \([L,mid]\)\([mid + 1, R]\) 中的 \(p_y\) 完全一致。若不满足,则要求当前二进制位首位有所不同。
    - \([L,mid]\)\([mid + 1, R]\) 中的 \(p_y\) 没有交集。若不满足,则要求当前二进制位首位全部相同。
    - 两个都不满足会出现矛盾(首位相同 or 不同),因此满足其一即可。至于满足其一是否合法这个要好证明的多。
    - 然后就分治 + 乘法原理 计算答案。
  • 染色相邻的边(好题):考虑给操作打上时间戳。一个边是黑的当且仅当其两边时间戳不同(这个不难证明)。
    然后就是 [SDOI2011] 染色。
  • 垃圾分类(不会题):重链剖分后平衡树维护。太菜了不会。

11.28

  • 东方记者:随便 dp 一下就好了。
  • 琪露诺数:数位 dp 板子题 \((\times)\),高精全家桶 \((\sqrt)\)
  • 58 号元素: 原题 CF1132G,单调栈求出每个数后面比他大的第一个,形成树关系后用线段树+dfs序维护。

11.30

思维专场,tyz 的 1MB 内存脑壳表示很无奈

  • 糖果机器:考虑满足方案的 \(j \to i\),有 \(s_i-s_j \leq t_i-t_j (s_j \leq s_i)\)\(s_i+s_j \leq t_i+t_j (s_j > s_i)\)。化简后可以把括号去掉。
    然后就是求两个条件同时满足的最小链数。按照第一个关键字 \(t_i - s_i\) 排序,然后以第二个关键字 \(t_j + s_j\) 跑个 LIS 就可以了,二分链末尾存方案。
  • 手套:考虑所有临界不合法方案 \((x,y)\),它们构成一些矩形。然后求矩形外的最小答案就可以了,用单调栈维护这些矩形。
  • 甲虫:区间 dp 题。\(O(n^2)\) 的区间 dp,最外层 \(O(n)\) 枚举终点。
  • 选举:剖析模型后就是一个最大子段和问题。用线段树维护。
posted @ 2020-11-28 23:10  Sqrtyz  阅读(159)  评论(0)    收藏  举报