zoukankan      html  css  js  c++  java
  • 2019 Multi-University Training Contest 2

    2019 Multi-University Training Contest 2

    A. Another Chess Problem


    B. Beauty Of Unimodal Sequence

    题意 给一个序列,求下标字典序最小和字典序最大的,先增后减的序列。

    解体过程

    • 比赛时首先不知道字典序最小LIS怎么求。
    • 试图枚举分界点。【解体的开始】
    • 公无渡河,公竟渡河?
    • 活鱼在摸鱼,rdc在划水,sdcgvhgj在水深火热。

    做法

    • 考虑字典序最小的LIS怎么求?
      • 这是个经典问题,预处理前缀LIS后缀LIS,check每个元素能都出现在整个序列LIS中,对能出现的元素,记录出现在LIS中的下标。
      • 下标为 1 最小元素,下标为 2 的最小元素..... etc
    • (pre[i][0/1], suf[i][0/1]) 分别维护前缀后缀信息,数组第二维记录表示升or降。
    • 逐位考虑填什么。

    C. Coefficient

    多项式套多项式。好难不会。


    D. Double Tree

    边分治。好难,不会。


    E. Everything Is Generated In Equal Probability

    solved by rdc 62min

    题意(1)(N) 随机一个 (n),再随机一个 (1)(n) 的排列,每次先计算逆序对加入得分,再随机选一个子序列,求得分期望。

    做法 考虑一个 pair 对答案的贡献即可。


    F. Fantastic Magic Cube

    solved by rdc 242min, assisted by F0_0H

    题意 一个空间立方体的权值为区域内所有整点 (x,y,z) 异或值之和,现需要把 (n*n*n) 的立方体,切割成 (n*n*n) 个 1*1*1,可以横向或者纵向切割,花费为两部分权值之积,最大化得分。

    识破 观察一维的 case,发现得分与切割无关。

    做法 每两个点对答案的贡献为常量,与切割方式无关。只需计算 xyz=a 的方案数,FWT 即可。

    复盘 很早就看了这个题,想法有:按位统计贡献,决策最优点有什么性质,乘法有特殊含义。 最后一条接近真相了,但当时看这题通过人数较少就没有继续考虑下去了。


    G.Game

    upsolved by sdcgvhgj
    题意 3x3的棋盘某些位置有黑子或白子,A每次拿走一个白子,并拿走其左右两侧的棋子或上下两侧的棋子或上下左右的棋子,B每次拿走一个黑子,不能操作则输,n个棋盘同时进行,问A必胜还是B必胜还是先手必胜还是后手必胜。
    做法

    • B自己玩着玩着就死了,每走一次都不如不走,所以对于A来说,B先手一定更优
    • 所以左集一定小于右集,能用超实数表示
    • 所以求一下每个局面的超实数加起来判断符号的正负就好
    • 整了个板子code

    H. Harmonious Army

    solved by F0_0H 135min -5

    题意 一群人分为两个集合,存在一些两人之间的关系,分为同一集合或不同集合都有相应的收益,问收益最大

    题解 最小割经典例题,详见16年国际集训队论文——《网络流的一些建模方法》姜志豪

    比赛时贡献了全队罚时,败给了五发错误提交,全因一个变量未清空,凉凉。

    warning 交题之前仔细检查数据清空。


    I. I Love Palindrome String

    solved by sdcgvhgj 56min
    题意 给定字符串s,对于(i∈[1,|S|])求有多少子串长度为i,且是回文的,且左半也是回文的。
    做法 回文树求出每个本质不同的回文串及其出现次数,马拉车判断是否左半回文。


    J. Just Skip The Problem

    签到 by rdc 27min


    K. Keen On Everything But Triangle

    solved by F0_0H 38min

    题意 给定长度为(n)的正整数序列,每次询问一段区间能构成的最大三角形。

    做法

    又是一道学长白给题,对序列建主席树,每次询问暴力查询前三大,不断尝试,直到成功为止。
    由于Fib的性质,尝试失败的次数是log级别的

    识破 Fib


    L. Longest Subarray

    solved by rdc 156min

    题意 查询极长的子区间,内部出现过的每种元素出现次数超过 k。

    做法

    • 从小到大枚举右端点,考虑哪些左端点的会被 ban 掉。
    • 我们可以发现 ban 掉的左端点是一些区间并,线段树维护。

    总结

    • X1 阶段(0h-1h):开场 E、H、I、J、K 靠着技能储备以及战斗经验很稳当地提出了做法,比赛节奏十分紧凑。
    • X2 阶段(1h-2.5h):通过 EIJK 之后,LH 轮流上机,L 题想法犹豫了,H 的实现也遇到了一些问题。这段时间本应做好中期攻坚工作,承上启下,但今天的表现完完全全是在集体划水,LH 拖沓,B 题未能提出合理的做法来。
    • Y 阶段:开始集火 B 题,可惜显得有些盲目,rdc 在比赛临近结束时提出了比较真的做法,但时间所剩无几,最终无功而返。
  • 相关阅读:
    C/C++程序内存泄漏检测
    linux下的内存管理
    Linker Script 链接器脚本
    linux内核进程调度以及定时器实现机制
    嵌入式软件设计中查找缺陷的几个技巧
    winCE DEBUGZONE
    程序员三个境界
    EJB初识(通熟易懂)
    JVM/JDK/JRE/IDE—区别(很经典)
    dubbo初识(一)Dubbo架构设计详解
  • 原文地址:https://www.cnblogs.com/FST-stay-night/p/11240176.html
Copyright © 2011-2022 走看看