• 2022/9/25 考试总结


    时间安排

    8.00~8.30

    T1是构造,直觉觉得存在一种方案把所有给出的数放在最后。
    那么就是要前边构造的b序列长度最少,那么显然构造单调下降的序列是最优的。
    大样例很水,也没法对拍,因为不知道无解判的对不对。

    8.30~9.00

    想T2,啥也没想出来,甚至不会多项式做法。

    9.00~9.20

    T3考虑把大于x的数设为1,小于的设为-1,那么如果有-1,1的切换就要加一。
    但是又发现-1,1,-1这种只需要一个代价就行了。整合了一下发现答案为所有连续切换的段的长度+1/2之和。用线段树维护元素的切换就好了。
    保险起见先写了个暴力,但是因为没有大样例,不知道对不对。

    9.20~10.00

    写T3的 O ( n l o g n ) O(nlogn) O(nlogn)的做法,写完对拍拍出了一堆错,不过最好好在拍上了。

    10.00~11.00

    T4感觉和今年NOI D2T2我写的有一档暴力很像,于是就按照那个写,加个前缀和优化,写完过了样例,又改了改过了大样例,复杂度为 O ( n × ( m 中的不同的数的个数) ) O(n\times (m中的不同的数的个数)) O(n×m中的不同的数的个数)),期望得分60分。

    11.00~12.00

    一直想T2的多项式做法,然后终于想出了一个 O ( n 2 ∑ s i ) O(n^2\sum s_i) O(n2si)的做法。
    把所有数排序,那么分组后只有每组的第一个和最后一个有用。
    那么就很好dp了,设 d p [ i ] [ j ] [ k ] dp[i][j][k] dp[i][j][k]为前i个数,当前还有j个左端点没有匹配,选的数的和为k的方案数,转移时有三种选择,新建一个组,和之前某个组匹配并结束这个组,或者加入某个组。
    感觉状态数不多就用map记录状态了,答案是对的,就是不知道能卡多少分。

  • 相关阅读:
    flutter获取字符串和json或者map的md5值
    Pillow(PIL)库的主要方法介绍
    Android应用内组件通讯之EventBus源码分析之post流程(三)
    问题 B: 图的最小生成树-Kruskal算法
    Linux (Centos 7) 自定义目录安装mysql - 精华版
    浅浅的 常见的滤波算法
    【ARK UI】【HarmonyOS】鸿蒙跳转action说明
    并发编程day09
    跨域问题及前端的解决方法
    gRPC 健康检查
  • 原文地址:https://blog.csdn.net/jwg2732/article/details/127036786