专栏文章

题解:AT_agc053_b [AGC053B] Taking the middle

AT_agc053_b题解参与者 3已保存评论 2

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
2 条
当前快照
1 份
快照标识符
@miqqceap
此快照首次捕获于
2025/12/04 09:01
3 个月前
此快照最后确认于
2025/12/04 09:01
3 个月前
查看原文
套路的,因为给 Aoki 和 Takahashi 两个人的权值和相同,所以转化为取出中位数的最小值。
ii 次我们可以取出 [ni+1,n+i][n-i+1,n+i] 中的任意一个值,这样为什么对呢?假设我们做完了 nn 次,并给其中 Aoki 取得数打了标记。然后我们只需要去离中间最近的那个值即可。为什么一定对呢?假设我们做完了中间的一个区间,若里面的属于 Aoki 的等于一半,扩展时直接取新扩展的不属于 Aoki 的点即可,若大于一半,则取离中间最近的,这样子中位数一定属于 Aoki。
CPP
q.push(a[i]);q.push(a[n*2+1-i]);
ans+=a[i];ans+=a[n*2+1-i];
ans-=q.top();q.pop();

评论

2 条评论,欢迎与作者交流。

正在加载评论...