• XX Russia Team Open, High School Programming Contest St Petersburg, Barnaul, Tbilisi, Almaty, Kremenchug, November 30, 2019


    ContestLink

    • easy: AFI
    • medium-easy: BDH
    • medium: CGKL
    • ???: EJ

    A. Attractive Flowers

    签到。


    B. Blocking the View

    题意 问线段ab沿向量v移动是否会与线段cd相交

    做法

    • 把ac,ad,bc,bd四个向量排序一下,判断v是否在范围内就好
    • 坑点在线段共线的情况

    C. Fermat’s Last Theorem

    题意 将有序四元组 ((a,b,c,n)) 按 max 为第一关键字,字典序为第二关键字排序,求第 l 位到第 r 位,并判断 (a^n+b^n)(c^n) 大小关系。

    做法 先确定 max,后逐位考虑,可以求出 rank 为 (x) 的四元组是谁。如果 ((frac{a}{c})^n+(frac{b}{c})^n) 和 1 的距离大于 eps,直接得出大小关系,否则高精度计算 (a^n+b^n)(c^n) 大小关系。


    D. Guess the Path

    题意 交互,(n*m),每次可以输出一条 ((1,1))((n,m)) 的路径(只能往右走或往下走),返回与既定路径 (p) 的交。

    做法 如果 ((x_1,y_1), (x_2,y_2)(x_1 leq x_2, y_1 leq y_2)) 在答案中,我们可以递归地构造 ((x_1,y_1))((x_2, y_2)) 的路径。先右走到 ((x_1, (y_1+y_2)/2)) 再下走到 ((x_2,(y_1+y_2)/2)) 再右走,下走的过程和路径 (p) 必定有交。这样递归的层数是 log 级别的。


    E. Hide-and-Seek for Robots


    F. Isosceles triangles

    做法

    枚举等腰三角形顶点,正三角形会被算多次,减去。


    G. Too Many Hyphens

    题意 给一个 +- 组成的序列,现在需要插入一个极短的合法括号序列,使得任意两个 - 不相邻。求所有方案中字典序 (k) 小。

    做法

    • 如果有 (x)- 相邻,那么最短的括号序列,左括号个数是 (lceil frac{x}{2} ceil)
    • (f[i][j][k]) 表示考虑第 (0) 个到第 (i-1) 个空隙中填入了 (j){, (k)},接下来有几种填写方式能够填出最优解。
    • 决策的时候,枚举在当前空隙填啥,注意到填入的字符不超过 2 个。

    H. Planet Nine

    题意 两种操作,加 (9x),扔掉长度为 (y) 的全是 1 的前缀。把 (a) 变成 (b)

    做法

    • 因为 (9|10^k-1) 所以每次可以让一个低位减一,让一个高位加一。
    • 先把 (a) 变成 0,再把 (0) 变成 (b)

    I. Dates

    签到


    J. Factory


    K. RotationAlmostSort

    题意 n x n的格子,格子里有数字,一条指令是这样的:若格子a的数字>格子b的数字,则将以格子c为左上角的2*2的区域逆时针旋转90度,你需要用这样的指令使无论初始格子里的数字是啥,执行完毕之后从第三行开始把数字依次写下得到的序列是非减的

    做法

    • 可以用三条指令使一个2*2的区域里的最大值移动到这个区域里的任意位置
    • 用这种操作每次选出最大值摆到对应位置

    L. Time Travel

    题意 给k棵大小为n的树,对于每个点对(u,v),求在每棵树的u到v的路径的点集的交集的大小

    做法

    • 一棵树中有(dist(j,k)+dist(k,j)>=dist(i,j)),等号取到当且仅当k在i到j的路径上
    • 如果k对(i,j)有贡献,那么在每棵树中都要有(dist(j,k)+dist(k,j)=dist(i,j))
    • 比赛时哈希判断的,其实只需要判断(sum dist(j,k)+sum dist(k,j)=sum dist(i,j))就好了
    • 因为都是大于等于号的不等式求和之后的不等式等号取到的条件肯定是每个不等式都取到等号吖
  • 相关阅读:
    从尾到头打印链表
    剑指offer
    Codeforces Round #345
    算法入门系列之字符串
    【codenet】代码相似度计算框架调研 -- 把内容与形式分开
    【学习笔记--数据结构】合法的出栈序列与栈混洗
    我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
    【PAT L2-001】最短路计数
    【CF689D Friends and Subsequences】二分搜索,区间查询
    【编译原理】语法分析LL(1)分析法的FIRST和FOLLOW集
  • 原文地址:https://www.cnblogs.com/FST-stay-night/p/11979435.html
Copyright © 2020-2023  润新知