20ZR提高组十联测 Day2

小W与伙伴招募


可以将题意转换为每天商店会对第 i i i 个商品补充 b i b_i bi 个。

贪心地,优先用便宜的方案,如果能二分的话那么复杂度再补充库存上,在线段树上维护两个东西 ( k × b i , r i ) (k \times b_i, r_i) (k×bi,ri),表示这个位置的库存是 k × b i + r i k \times b_i + r_i k×bi+ri

每次先补充一下库存,相当于对 k k k 区间加。然后线段树二分找到 p p p 表示 1 ∼ p − 1 1 \sim p-1 1p1 的库存都花完,这样 1 ∼ p − 1 1 \sim p - 1 1p1 可以区间覆盖为 0 0 0 p p p 位置查询一下再单点修改。

注意,维护的线段树不是同时支持加法和乘法的,它们间是相互独立的,所以拆成两棵线段树一起维护也可以。

小W与制胡串谜题

原题。给定 n n n 个字符串,将它们拼接在一起使得字典序最小。

直接的想法是按字典序拼接,但不会那么简单的

hack 
aa
aba

不过你这样就好了

bool cmp(string a, string b) {
	return a + b < b + a; 
}

小W与屠龙游戏

一道 noip 大概不考的博弈论。题意有点绕,人话翻译一下。

2 n 2n 2n 堆石子,分成 n n n 对,每一对中石子堆的石子个数是相同的。后手先选一个非空的集合(不必要把一个对的全选),然后双方轮流进行操作:每次选择一堆石子取任意个石子。或选择两堆石子,分别在两堆石子里取任意个石子。最后一个不能操作者失败。

如果双方都采用最优操作,对于每个对的前缀,你需要求出在它情况下进行游戏先手的最大得分,得分定义为在获胜的前提下选的石子个数,如果失败则本轮没有得分。

强制在线。 1 ≤ n ≤ 5 × 1 0 5 , 1 ≤ x i ≤ 1 0 18 , 1 ≤ y i ≤ 1 0 9 1 \le n \le 5 \times 10^5, 1 \le x_i \le 10^{18},1 \le y_i \le 10^9 1n5×105,1xi1018,1yi109

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值