zoukankan      html  css  js  c++  java
  • [AtCoder]Grand Contest 028

    A Two Abbreviations

    题意:给定两个串,长度为(N)(A)和长度为(M)(B),一个串(S)被称为好的,当且仅当:这个串的长度(L)能被(N,M)整除,且(S_{i*L/N} = A_i, S_{j*L/M} = B_j),求最短的好的串。

    显然这个题中(L)应该是(lcm(N, M)),然后考虑(A)(B)(S)中重叠的部分就行了。

    B Removing Blocks

    题意:给定一个数列,每次删除一个数,定义这次操作的代价为和这个数连接的数的和,两个数(a_i,a_j)连接当且仅当(forall ile kle j, a_k)都没有被删除。求删完所有数之后的期望收益。

    定义(P(i,j))为在(a_i)删除时(a_j)(a_i)连接的概率,这样,(a_j)的期望贡献次数就是(sum_{i=1}^n P(i,j))。如果在(a_i)删除时(a_j)(a_i)连接,那么(a_i)一定是(a_{i..j})中第一个被删除的,所以(P(i,j) = 1 /(|i-j|+1)),这样只用求一下(1..n)逆元的前缀和就能(O(n))的计算答案了。

    C Min Cost Cycle

    题意:有一些点,他们有权值(A,B),一条有向边((i,j))的权值是(min(A_i, B_j)),找一条覆盖所有点的有向环,使其权值最小。

    我们定义点的类型如下:

    • (X):这个点贡献(A,B)
    • (Y):这个点只贡献(A)
    • (Z):这个点只贡献(B)
    • (W):这个点没有贡献。

    由此,我们发现,题目要求的环只有如下三种情况:

    • 全是(Y)
    • 全是(Z)
    • (X)点和(W)点的数量为(ge1)且相等。

    前两种情况很好算,最后一种情况可以这样计算:将(A_1..A_n,B_1..B_n)升序排序,如果前(N)个里存在一个(v)使得(A_v,B_v)都在前(N)个中,显而易见直接取前(N)个是合法且很优的。否则,对于每个点,我们让它是(W)。然后贪心的附加上剩下的(N-1)个点(取前(N+1)(N+2)个),取答案的最小值即可。

    D Chords

    题意:环上有(2N)个等距的点,用(N)个线段连接这些点,定义两个点联通为这两个点可以在只经过这些线段的情况下互相到达。现在已经画了(K)个线段,问最后联通块的数量的期望。

    E High Elements

    题意:给定一个(1..N)的排列(P),一个长度为(N)(01)序列是好的当且仅当:构造两个序列(X,Y),一开始,两个序列都是空的,如果(S)的第(i)个数是(0),则(P_i)放入(X)中,否则放入(Y)中,且(X,Y)的元素数量一样。一个元素(a_i)的,当且仅当对于任意(j<i),都有(a_j<a_i)

    F Reachable Cells

    题意:给定一个矩阵(A)(A_{i,j})(1..9)(#),两个点是联通的,当且仅当可以从一个点,只向下或向右,不经过填有(#)的格子,可以到达另一个点。求出所有联通的点的权值的乘积的和。

  • 相关阅读:
    Java读写.properties文件实例,解决中文乱码问题
    web项目的getContextPath()
    PWC6345: There is an error in invoking javac. A full JDK (not just JRE) is required
    Eclipse安装与配置
    Linux基础整理 + 注释
    git命令集合
    遍历List集合的三种方法
    使用jqueryUI和corethink实现的类似百度的搜索提示
    corethink功能模块探索开发(十八)前台页面插入jit前端数据可视化库
    corethink功能模块探索开发(十七)opencmf.php 配置文件
  • 原文地址:https://www.cnblogs.com/wyxwyx/p/agc028.html
Copyright © 2011-2022 走看看