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

    A. Ciel and Dancing

    • 模拟。

    B. Ciel and Flowers

    • 混合类型的数量只能为0、1、2,否则3个可以分成各种类型各自合成。

    C. Ciel and Robot

    • 考虑一组命令得到的点集,那么后面的点的起始点会对应于其中点集中的一个点。

    D. Ciel and Duel

    • 两种策略:
      1. atk-atk:一个取最小的前若干个,一个取最大的若干个。
      2. atk-def、atk:对于def状态的,需要优先取最靠近的值抵消,剩余atk状态的也是取最近的。

    E. Ciel the Commander

    • 0应该设置成尽可能通过多的点对,此时树会变成若干棵子树,则变成了子问题,那么显然是点分治了。

    F. D. Ciel and Flipboard

    • 枚举第(x)行的翻转状态。
    • 对于(i lt x)的行来说,在不影响(x)行状态的条件下,((i,j))((i+x+1,j))的翻转状态总是一致的。
    • 考虑(i<x)的行,在不影响其他列的条件下,((i,j))((i, j+x+1))的翻转状态应该是一致的。
    • (j=x)的列需要单独考虑,如果不翻转,则对其他列无影响。如果翻转,那么对于所有(j<x)的点((i, j))((i, j+x+1))的翻转状态总是相反的。
    • 于是对于每一行来说,相对于其他行都是独立的。考虑(j=x)的翻转状态,可以得到两种类型的和,$$type0=max(a(i,j)+a(i, j+x+1), -a(i,j)-a(i,j+x+1)) ype1=max(a(i,j)-a(i,j+x+1),-a(i,j)+a(i,j+x+1))$$

    G. Ciel and Gondolas

    • 朴素的dp做法容易想:(dp(i,j))表示用(i)辆车拉走(j)个人的最小代价,复杂度(O(n^2k))
    • (opt(i,j))表示(dp(i,j))的最优决策点,可证明(opt(i,j)le opt(i,j+1))
    • 根据决策点的单调性,可以使用分块dp优化,时间复杂度(O(nklogn))
  • 相关阅读:
    Java中的魔法类-Unsafe
    Caffeine Cache-高性能Java本地缓存组件
    mysql之innodb日志管理
    mysql之innodb存储引擎---BTREE索引实现
    myslq5.7安装以及root密码找回
    mysql之innodb存储引擎---数据存储结构
    mysql之innodb存储引擎介绍
    java字符串详解
    hadoop2.7作业提交详解之文件分片
    hadoop2.7之作业提交详解(下)
  • 原文地址:https://www.cnblogs.com/mcginn/p/6656320.html
Copyright © 2011-2022 走看看