尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

P14259 兄妹(siblings)题解

P14259 兄妹(siblings)题解
📅 发布时间:2026/6/20 2:17:05

闲话:这似乎是我第一次在 luogu 场切绿。蒟蒻对思维题不太擅长 QwQ。

前置芝士

  • 动态规划 / DP

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

思路

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

证明也比较简单,考虑某个人去放了这一排最远的(\(c_i\) 最大的)书,那么它一定可以顺带放路上经过的所有的书。有了这个结论,就可以推出:在第 \(x\) 个书架放书的用时是固定的,就是:\(cost_x=2\times\max_\limits{i:\ r_i =x} c_i\)。

那么这个问题转化成了:

  • 有 \(m\)(\(m\) 为最大书架编号)个数字,把他划分成两组,求两组内部元素的和的最大值的最小值。
  • 但是由于从一个书架移动到另一个还要花费时间,所以还有额外的代价。考虑去放书的时候移动一定是按照下标递增顺序的,同理,放完书回来也不用回头,所以下标一定单调递减。设第一组的总和为 \(s_1\),最大下标为 \(a_1\),第二组的总和为 \(s_2\),最大下标最大为 \(b_2\);则代价为 \(\max(s_1+2\times a_1,s_2+2\times a_2)\)。你需要求这个代价的最小值。

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

对于第二个问题,比较复杂,我们继续观察性质:注意到,由于这两组的并集是全集,所以 \(a_1\) 和 \(a_2\) 一定有一个是 \(m\)。

这样,我们可以固定 \(a_2=m\),然后枚举,从 \(1\) 至 \(m-1\) 枚举 \(a_1\) 的值。接下来考虑如何做到 \(a_1=i(1\le i<m)\)。由于 \(a_1\) 表示最大下标,所以任意 \(>i\) 的下标都不能划分至第一组。

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

  • 第一组初始代价是在书架之间走路所花费的 \(2\times a_1\);

  • 令 \(sum=\sum\limits_{j=1}^m cost_j\),\(cnt=\sum\limits_{j=1}^i cost_j\),则第二组的初始代价是在书架之间走路的代价 \(2\times a_2\) 加上下标 \(>i\) 的所有书架放书的代价:\(sum-cur\);第二组的总初始代价为 \(2\times m+sum-cur\)。

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

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;
}

相关新闻

  • 2025 年济南画室最新推荐品牌口碑排行榜权威发布,涵盖小班教学与全封闭管理机构,助力艺考生选优质画室
  • P6076 [JSOI2015] 染色问题 分析
  • 2025 年最新货代公司排行榜:国内优质企业权威推荐,助力企业精准挑选靠谱合作伙伴泰国/印尼/马来/日本/东南亚货代公司推荐

最新新闻

  • 从TTL到485:深入解析差分信号转换电路的设计要点与实战应用
  • 杭州GEO优化公司2026年6月Top5:选型疑问与避坑全解 - GEO优化
  • 2026年最新武汉光谷科技职业技术学校联系方式及招生办电话号码 - 武汉中职最新信息发布
  • 揭秘Mac鼠标滚轮终极优化:让外接鼠标拥有触控板般的丝滑体验
  • MC9RS08KA2内部时钟与定时器深度解析:从原理到低功耗设计实战
  • 2026玉林本地人必选防水补漏检测维修公司靠谱服务商TOP5推荐:房屋渗漏水检测维修/卫生间/厨房/天花板/阳台/外墙渗漏水检测补漏维修-暗管漏水检测专业仪器精准定位漏水点 - 即刻修防水

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号