zoukankan      html  css  js  c++  java
  • Codeforces Round #454 (Div. 1)

    Codeforces Round #454 (Div. 1)

    A. Shockers

    题目描述:主持人心里想一个字母,然后选手说出一个字符串,如果该字符串中有那个字母,则那个人遭电击。选手可以猜测那个字母,猜测错误会遭受电击。给出整个比赛过程,问如果选手在能判断出字母时立刻猜测,则可以避免多少次电击。数据保证在最后一次猜测之前,选手猜的都错。

    solution
    模拟。

    时间复杂度:(O(10^5))

    B. Seating of Students

    题目描述:有(n*m)个座位,从上到下,从左到右对座位进行编号,现将座位调乱,使得每个座位的四相邻没有原来的四相邻的任何一个,判断是否存在一种方案,若有,则输出任一方案。

    solution
    不失一般性,可设(n leq m)。考虑以下情况:

    1. (n=1, m=1), 有解
    2. (n=1, m=2), 无解
    3. (n=1, m=3), 无解
    4. (n=1, m=4), (3,1,4,2)
    5. (n=1, m geq 5), 先奇数递增,再偶数递增,如(1, 3, 5, 2, 4)
    6. (n=2, m=2), 无解
    7. (n=2, m=3), 无解
    8. (n=3, m=3), ((6, 1, 8)), ((7, 5, 3)), ((2, 9, 4))
    9. (2 leq n, 4 leq m), 偶数行水平循环移动两位,偶数列垂直循环移动一位,则本来垂直相邻的座位变为相隔两列,本来水平相邻的座位变为对角。

    时间复杂度:(O(nm))

    C. Party

    题目描述:有(n)个人,有(m)个相识关系,表示某两个人认识。先进行如下操作:每次选一个人,将这个人认识的人相互介绍认识。问最少多少次操作使得所有人相互认识,并输出最少操作下的任意一种方案。

    solution
    首先要知道,选人的顺序不影响最终的结果。因此每个人只有选和不选两种情况,这时可以做一个dp,首先可以预处理(压位)出每个人的认识的人(neighbour[i])(connect[sett])表示当选了(sett)里的人时,(connect[sett])里的人相互认识。
    初始时(connect[2^i]=neighbour[i]),然后将(connect[sett])表示的集合记为(v_i)((v_i)为一元素),那么(connect[sett|2^{v_i}]|=neighbour[v_i])
    最终解就是(connect[sett]==2^n-1)(sett)对应的集合元素个数最少。

    时间复杂度:(O(2^nn))

    D. Power Tower

    题目描述:给定一个(n)个数的序列(a_i)与一个数(m),有(q)个询问,每个询问给出一个区间([L, R]),求(a_L^{(a_{L+1}^{(a_{L+2}^{...^{a_R}})})}\%m)

    solution
    很明显是欧拉定理的应用

    [a^x=a^{x\% phi (m)+phi(m)} mod (m), 当xgeq phi(m) ]

    然后已知(phi(phi(m)) leq frac{m}{2}),所以在(log(m))时间内(phi(m)=1),所以暴力递推就好了

    时间复杂度:(O(qlogm))

    E. Reverses

    题目描述:给定两个字符串,问是否可以通过翻转某些子串(不重叠),使得第一个字符串变为第二个字符串。输出最少翻转个数与方案,或无解。

    solution
    首先要知道一个非常重要的点:如果有解,将两个字符串错位拼接后,字符串会变为偶数回文串与相同字符交替。如:
    abcxxxdef
    cbaxxxfed
    acbbcaxxxxxxdfeefd
    问题转化为用最少的偶数回文串(不重叠)覆盖拼接后的字符串,使得没有被回文串覆盖的部分各自字符相同。
    (f[i])表示前(i)个字符需要偶数回文串覆盖个数,当(st[i]==st[i-1])时,(f[i]=min(f[i], f[i-2])),剩下的转移时关于偶数回文串的,貌似时一个经典问题,但论文看得不太懂,有空再更新。

    时间复杂度:(O(nlogn))

  • 相关阅读:
    Remote Procedure Call (RPC) Locator与X3
    Delphi的悬浮窗口
    改变CSS样式
    JavaScript 打印Web页面指定区域的信息
    判断页面元素存在与否
    如何处理HTML标签属性
    jQuery 获取和设置表单元素
    如何添加/移除CSS类
    处理网页内容
    正则表达式 收集
  • 原文地址:https://www.cnblogs.com/GerynOhenz/p/8232395.html
Copyright © 2011-2022 走看看