zoukankan      html  css  js  c++  java
  • Codeforces Global Round 15

    A. Subsequence Permutation

    排序。

    B. Running for Gold

    简单比较。

    C. Maximize the Intersections

    贪心让左半边依次和右半边匹配。

    D. Array Differentiation

    把每个 $a_i=b_j-b_k$ 看作边 $(j, k)$,既然有 $n$ 条边,那么肯定至少有一个环,$O(2^n)$ 枚举环上元素了之后枚举哪些是正数哪些是负数,看是否能取到 $0$。如果能取到则有解,否则无解。复杂度 $O(3^nn)$。

    E. Colors and Intervals

    $leftlceil frac{n}{k - 1} ight ceil$ 引导我们往抽屉原理想。考虑每 $k-1$ 个颜色放在一组做,如果能保证这一组不存在重复元素就可以了。具体方法是:每次取出第二次出现位置最早的颜色,作为这个颜色的区间,然后其他颜色同时剥去第一次出现位置,正确性显然。

    F. Telepanting

    如果人经过了 $x_i$ 而不被传送,那么意味着 $x_{1..i}$ 都已经是开着了的。考虑 $f(i)$ 表示当人经过 $x_i$ 并被传送的时候,要经过多长时间才能再次到达 $x_i$(并不被传送)。设 $j$ 的最小的满足 $x_j>y_i$ 的下标,那么 $f(i)=x_i-y_i+f(j)+...+f(i-1)$,前缀和优化转移即可。最终计算答案的时候,只需要把所有初始开着的传送门的 $f(i)$ 加起来,再加上 $x_n+1$ 即可。

    G. A Serious Referee

    根据排序网络的结论,一个算法能排好序当且仅当任意的 01 串都能排好序。那么我们考虑搜索所有的 01 串。如果在前 $i$ 个操作进行完了之后,只接触到了 $S_i$ 集合内的位置,那么我们在搜到 $i$ 的时候,也只需要考虑 $S_i$ 集合内的 01 情况。更进一步,假设 $T_i=S_isetminus S_{i-1}$,我们只需要考虑 $T_i$ 集合内有几个 0 几个 1 就好了,因为在第 $i$ 个操作进行的时候,$T_i$ 集合必然会被排序,所以这里面 01 的具体顺序就不需要考虑了。

    分析一下复杂度:$prod_{i=1}^{k}(|T_i|+1)leq left(frac{n + k}{k} ight)^k$。在维护 01 串的时候使用位运算,就可以保证复杂度比较低。

    注意特判 $n=1$ 的情况,和 $S_k eq [1,n]$ 的情况。

    H. Guess the Perimeter

    好牛逼啊。复制题解人来了。

    设矩形的宽为 $w$,长为 $h$。

    首先问一下所有的点组成的集合,答案就是 $(w+1)(h+1)$。

    考虑问这样的集合:${(di, j)|1leq ileq lfloor 200/d floor, 1leq jleq 200}$,设其结果为 $f(d)$。

    然后注意到 $d imes f(d)=f(1)$ 当且仅当 $d|(w+1)$。

    接下来考虑使用 2 的次幂。设 $k$ 为 $w+1$ 的质因子 2 的个数,$p=2^k$。那么 $left|2f(2p)-frac{f(1)}{p} ight|=h+1$。

    于是我们只要二分出满足条件的 $k$ 即可,集合大小只有 ${1,2,2^2,...,2^7}$,所以只需要 $3$ 次就能二分出来了。带上一开始的那次就是 $4$ 次。

    I. Organizing a Music Festival

    虽然这是最后一题,但确实很套路、很模板。

    看到这种指定一个集合要连续的问题,不难想到 PQ tree。

    PQ tree 的节点包含 P 点和 Q 点,P 点要求儿子可以以任意顺序排列,Q 点要求儿子必须以正序或倒序排列。

    然后插入一个集合的时候,就是一车分类讨论了,我好像也描述不清,不如看看别人的博客怎么讲(逃)。

    最后求答案是很简单的,只要在树上根据这个点是 P 还是 Q 乘以一个贡献即可。

  • 相关阅读:
    mysql数据库常用指令
    解决windows的mysql无法启动 服务没有报告任何错误的经验。
    “Can't open file for writing”或“operation not permitted”的解决办法
    启动Apache出现错误Port 80 in use by "Unable to open process" with PID 4!
    如何打开windows的服务services.msc
    常见的HTTP状态码 404 500 301 200
    linux系统常用的重启、关机指令
    (wifi)wifi移植之命令行调试driver和supplicant
    linux(debian)安装USB无线网卡(tp-link TL-WN725N rtl8188eu )
    alloc_chrdev_region申请一个动态主设备号,并申请一系列次设备号
  • 原文地址:https://www.cnblogs.com/Master-Yoda/p/15124439.html
Copyright © 2011-2022 走看看