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 乘以一个贡献即可。

  • 相关阅读:
    zabbix 3.2.2 server端添加客户端主机配置 (四)
    zabbix 3.2.2 server web展示如何显示中文 (三)
    zabbix 3.2.2 agent端(源码包)安装部署 (二)
    zabbix 3.2.2 server端(源码包)安装部署 (一)
    centos执行apt-get提示不存在
    用简单的方法学习ES6
    PHP+MySQL存储数据出现中文乱码的问题
    CentOS 6.0 系统 LAMP(Apache+MySQL+PHP)安装步骤
    mysql查询索引
    线程和进程
  • 原文地址:https://www.cnblogs.com/Master-Yoda/p/15124439.html
Copyright © 2011-2022 走看看