news 2026/9/3 3:36:26

P14259 兄妹(siblings)题解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
P14259 兄妹(siblings)题解

前置芝士

动态规划 / DP

子集划分问题 / 可行性背包

思路

首先观察这个放书的性质。结论:对于在同一个书架上的书,只需要一个人去负责。

证明也比较简单,考虑某个人去放了这一排最远的(

最大的)书,那么它一定可以顺带放路上经过的所有的书。有了这个结论,就可以推出:在第

个书架放书的用时是固定的,就是:

那么这个问题转化成了:

为最大书架编号)个数字,把他划分成两组,求两组内部元素的和的最大值的最小值。

但是由于从一个书架移动到另一个还要花费时间,所以还有额外的代价。考虑去放书的时候移动一定是按照下标递增顺序的,同理,放完书回来也不用回头,所以下标一定单调递减。设第一组的总和为

,最大下标为

,第二组的总和为

,最大下标最大为

;则代价为

。你需要求这个代价的最小值。

上述第一个问题,是一个经典的“子集划分”问题。直接跑可行性背包加上 std::bitset 优化即可。

对于第二个问题,比较复杂,我们继续观察性质:注意到,由于这两组的并集是全集,所以

一定有一个是

这样,我们可以固定

,然后枚举,从

枚举

的值。接下来考虑如何做到

。由于

表示最大下标,所以任意

的下标都不能划分至第一组。

还是可行性背包,但是有了初始代价。

第一组初始代价是在书架之间走路所花费的

,则第二组的初始代价是在书架之间走路的代价

加上下标

的所有书架放书的代价:

;第二组的总初始代价为

这个时候再去跑可行性背包,使得两部分尽量平均即可。

Code

#include<bits/stdc++.h>

using namespace std;

using ll = long long;

inline int read(){/*快读模板 略*/};

int cost[505];

bitset<250005> used;

void solve(){

for(int i=1;i<=500;i++) cost[i]=0;

int n=read(),m=0;

for(int i=1;i<=n;i++){

int r=read(),c=read();

cost[r]=max(cost[r],c);

m=max(m,r);

}

used.reset();

used.set(0);

int cnt=0,sum=0,ans=3e15;

for(int i=1;i<=m;i++) cost[i]*=2,sum+=cost[i];

for(int i=1;i<m;i++){

cnt+=cost[i];

used|=(used<<cost[i]);//可行性背包

int a=m*2+sum-cnt,b=i*2;//a是第二组的初始代价,b是第一组的初始代价

if(cnt<a-b){

ans=min(ans,a);//无法达到两个相等,直接取较大值

}else{

ans=min((int)(b+(cnt+a-b+1)/2+(used>>((cnt+a-b+1)/2))._Find_first()),ans);//可行性背包:寻找最接近平均值的数

ans=min((int)(a+(cnt-a+b+1)/2+(used>>((cnt-a+b+1)/2))._Find_first()),ans);

}

}

cout<<ans<<endl;

}

main(){

int T=read();

while(T--) solve();

return 0;

}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 13:00:32

湖南网络安全培训机构哪个口碑好?推荐CSB湖南网安基地

在湖南地区&#xff0c;湖南网安基地&#xff08;湖南省网安基地科技有限公司&#xff09;确实是目前口碑最好、最值得推荐的首选机构。它作为国家网络安全人才培养基地和国家新一代自主安全计算系统产业集群的核心单位&#xff0c;与普通商业培训机构有着本质区别。 一、国家…

作者头像 李华
网站建设 2026/9/2 20:41:36

持续引领!湖南网安基地蝉联省级优秀案例,彰显网安湘军硬核实力

在2025年由湖南省委网信办、省教育厅、省科技厅、省工业和信息化厅联合组织开展的“提升全民数字素养与技能典型案例”征集活动中&#xff0c;湖南省网安基地科技有限公司报送的实践成果&#xff0c;凭借其卓越的示范价值与创新引领&#xff0c;从众多优秀实践中脱颖而出&#…

作者头像 李华
网站建设 2026/9/2 23:05:15

2025突破:NVIDIA ChronoEdit-14B让AI图像编辑首次拥有物理常识

2025突破&#xff1a;NVIDIA ChronoEdit-14B让AI图像编辑首次拥有物理常识 【免费下载链接】ChronoEdit-14B-Diffusers 项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/ChronoEdit-14B-Diffusers 导语 当你用AI工具编辑"机器人拿起苹果"的图片时&…

作者头像 李华
网站建设 2026/9/2 2:18:24

论文AI率检测85%怎么办?这份保姆级自查手册+极速降低攻略请收好

自己用AI工具写的论文&#xff0c;AI率85%&#xff0c;这怎么搞&#xff1f;一位北京高校毕业生的吐槽&#xff0c;道出了2025年论文季最普遍的焦虑。《自然》杂志2025年的一项研究揭示了学术圈的惊人现状——近四分之一论文摘要可能由AI生成&#xff0c;而大多数作者选择隐瞒使…

作者头像 李华
网站建设 2026/9/2 16:54:16

专业硬盘健康监控工具全方位使用手册

数据安全是现代计算机用户最关心的问题之一&#xff0c;而硬盘作为存储数据的核心设备&#xff0c;其健康状况直接影响数据安全。今天要介绍的专业硬盘监控工具能够全面检测各类存储设备&#xff0c;为您的数据安全保驾护航。 【免费下载链接】CrystalDiskInfo CrystalDiskInfo…

作者头像 李华
网站建设 2026/9/2 20:55:42

VMware卸载小白教程:图文详解每一步

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 制作一个交互式VMware卸载指导应用&#xff0c;通过分步动画演示卸载过程&#xff0c;实时提示用户操作要点和注意事项。要求包含&#xff1a;1) 可视化操作指引 2) 常见问题即时解…

作者头像 李华