当前位置: 首页 > news >正文

P4951 [USACO01OPEN] Earthquake 题解

首先要知道 0/1 分数规划这个经典模型

给定 \(a_1,a_2....a_n\) 以及 \(b_1,b_2....b_n\) 求一组解 \(x_i(1\leq i \leq n,x_i \in [0,1] )\),使下列式子最大化:

\[\frac {\sum_{i=1}^n a_i \times x_i}{\sum_{i=1}^{n} b_i \times x_i} \]

通用解法是二分答案,我们假设二分值为 \(mid\),且 \(mid \leq \frac {\sum_{i=1}^n a_i \times x_i}{\sum_{i=1}^{n} b_i \times x_i}\),推一下式子就能得到:

\[\sum_{i=1}^{n} x_i (a_i-mid \times b_i) \geq 0 \]

如果左式的最大值大于等于 \(0\),也就是存在一组解满足条件,则当前的二分值可以更大,反之更小,这个解的存在性是具有单调性的,所以二分答案的做法是成立的。
解决这类问题的关键还要看是否有合适的方式去求解左式的最大值(或最小值)。

P4951 [USACO01OPEN] Earthquake

设所选边集为 \(s\),要求最大化 \(\Large \frac {f-\sum_{i \in s} c_i}{\sum_{i \in s} t_i}\) ,考虑二分答案,若$mid \leq $ \(\Large \frac {f-\sum_{i \in s} c_i}{\sum_{i \in s} t_i}\),移项得 \(f- \sum_{i \in s} (mid \times t_i+c_i) \geq 0\),对于 \(-\sum_{i \in s} (mid \times t_i+c_i)\) 这部分可以把边权赋成 \(-mid \times t_i - c_i\) 再跑一遍最大生成树求解即可。

时间复杂度 \(O(m \log m \log V)\)

http://www.rkmt.cn/news/9597.html

相关文章:

  • 用ida插件快速审计函数调用
  • schematool -initSchema -dbType mysql
  • tsx 图论选讲
  • 阿里云通义MoE全局均衡技巧:突破专家负载失衡的革新之道
  • .NET Polly 全面指南:从5W2H维度深度解析
  • Day19构造器详解
  • 【院士报告|EI检索稳定|大连理工大学主办】第四届能源与动力工程国际学术会议(EPE 2025)
  • 20250509_信安一把梭_黑客
  • 达芬奇标记测量线文字标题动画预设(Tracked Measuring Lines)使用指南
  • css样式:button边框贪吃蛇加载效果
  • 什么是NIC(网络接口卡)?
  • 视频剪辑效率翻倍!CyberLink PowerDirector 从入门到专业的全能解决方案
  • SAP-ABAP中STOP,EXIT,CHECK,RETURN,CONTINUE,LEAVE,REJECT的区别
  • Arduino ide 软件 不建议大家使用 缺点多多
  • Refit Consul
  • 麒麟服务器操作系统查询可用的内核版本以及安装和降级命令
  • 20250406_信安一把梭_测试篇
  • 3123004806软件工程查重项目
  • DeepSeek大模型混合专家模型,DeepSeekMoE 重构 MoE 训练逻辑 - 教程
  • Queue 配合Thread使用
  • 以下内容在if判定的时候会被判定为 假
  • 不同Windows系统中支持的最新.Net Framework/.NET版本
  • 每周读书与学习-初识JMeter 元件(二)
  • 深入解析:【Spring 全家桶】Spring MVC 快速入门,开始web 更好上手(下篇) , 万字解析, 建议收藏 ! ! !
  • 实用指南:ThinkPHP 6框架常见错误:htmlentities()函数参数类型问题解决
  • 完整教程:深入剖析 Chrome PartitionAlloc 内存池源码原理与性能调优实践
  • 如何构建embeding 的就是pytorch 中
  • C# 第 17天 028 029接口,依赖反转,单元测试
  • 群晖安装套件,套件版本与群晖版本不兼容;
  • 中间件专题:Redis