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))\\type1=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)\)

转载于:https://www.cnblogs.com/mcginn/p/6656320.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值