zoukankan      html  css  js  c++  java
  • Codeforces Round #712 (Div. 2) 题解A-E

    A. Déjà Vu

    根据回文串的定义,对于字符串(s_{1 dots n}),只要存在(s_{i} e s_{n - i + 1}),那么(s)就不是回文串。

    遍历(s),若存在非a的字符,那么在对应位置插入a就可以。反之,则无解。

    B. Flip the Bits

    由于修改是前缀修改,且不会改变前缀01的数量,所以不妨从末尾开始修改。

    然后就模拟一下完事了。

    C. Balance the Bits

    观察1:若有可行解,则0有偶数个。

    证明

    (看成(-1),将)看成(1)。若一个括号串是平衡的,那么其所有的前缀和非负,且整个串的和为(0)

    (a)(b)的和分别为(sa)(sb)(Delta = sa - sb)

    对于(s_i = 1)的位置,其对(Delta)无贡献;对于(s_i = 0)的位置,其对(Delta)的贡献为(+2)(-2)

    由于最后(sa = sb = 0),所以最后(Delta = 0)

    那么对于每一个(+2),必须要有一个(-2)将其抵消。

    观察2:对于(s_i = 1),前一半填(,后一半填)

    因为要防止前缀和非负,所以前面尽可能提高前缀和应该是最优的。

    观察3:对于(s_i = 0),交替填。

    理由同上。

    D. 3-Coloring

    假设没有禁手,那么其实可以只用两种颜色将棋盘染色,例如国际象棋棋盘。

    现在有禁手,其实也可以先用两种颜色去染。

    假定现在计划用1染色的格子已经染完了,而计划用2染色的格子还没染完。此时如果禁手2,那么就凉凉了。第三种颜色就是用于这种情况。此时只需要用3去染原本计划用2染色的格子即可。

    然后分类讨论一下就可以了。

    禁手1就用2填2或者用3填1。

    禁手2就用1填1或者同3填2。

    禁手3就1和2选一个填。

    证明

    这样其实就是将3视为1和2种的一种。

    因为若1和2都染完了,就结束了。所以一局游戏里只会将3视为1和2中的一种,即3不会冲突。

    因为原本就保证了1和2不冲突,此时又可以证明3不冲突,所以可行。

    E. Travelling Salesman Problem

    因为(c_i)是必须的花费,不妨先将其花掉。现在从(i)城到(j)城的花费为(max(0, a_j - a_i - c_i))

    此时,从(a)大的城市到(a)小的城市是免费的。

    其实从那个城市出发都是一样的,因为最后的路径是一个环,修改起点并不影响总的代价。所以不妨将城市按(a)升序排序。

    由于从(a)大的城市到(a)小的城市是免费的,那么如果到达了(a_n),之后的路就都是免费的了。

    现在的目标就是从(a_1)走到(a_n),那么(a_1)(a_n)的最短路径就是答案。

    此时可以建个图跑Dijkstra,但是其实有更简单的方法。

    将从(a_1)(a_n)的过程视为攀登,那么其实可以将(a)视为高度,(c)视为梯子。对于每一个城市,到达(a_j)的最优方法就是从(arg max_{i < j} a_i + c_i)爬到(a_j)。对应的代价为(sum_{j = 2}^{n} max(0, a_j - max_{i < j}(a_i + c_i)))

  • 相关阅读:
    面向对象
    tomcat启动时的java_home和jre_home错误
    C#获取当前程序运行路径的方法集合(转)
    Windows Media Player 打不开怎么办
    CGI/MIME/servlet术语解释
    HTTP 无法注册 URL http://+:8000/。进程不具有此命名空间的访问权限
    使用QuartZ.net来做定时计划任务 ; 值不能为 null。 参数名: assemblyString
    cz.msebera.android.httpclient.conn.ConnectTimeoutException: Connect to /192.168.23.1:8080 timed out(Android访问后台一直说链接超时)
    Java的位运算符——&0xFF的运算与讲解
    android+myeclipse+mysql自定义控件下拉框的数据绑定
  • 原文地址:https://www.cnblogs.com/zengzk/p/14616278.html
Copyright © 2011-2022 走看看