原题链接
在岸上捕捞n(<=300)个宝物,一秒捕一个,捕捞消耗的体力为宝物的此时坐标(xi,yi,zi+t*vi)的平方,t为当前时间,求捕捞所有宝物的最小消耗体力量。
分析:
易知为二分图的带权最小匹配问题,事实上只要带有“选择”的意味的题目,都可以考虑使用二分图算法试解。
这题的难点主要在卡时间,网上的很多板子都卡了,这里给出一份跑得飞快的二分图的带权匹配的板子。

LL w[maxv][maxv];   //记录边权
bool getVal[maxv][maxv]; //记录该边是否被赋值,以上两个数组都需要在读边的时候完成赋值
namespace KM {long long cal(int n, int m,bool isSmall) {  //带权匹配模板,总n个点,最大匹配m个点,isSmall表示是否是最小带权匹配std::vector<long long> u(n + 1), v(m + 1), p(m + 1), way(m + 1);if(!isSmall) for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) w[i][j]=-w[i][j];for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(!getVal[i][j]) w[i][j]=1e18;for (int i = 1; i <= n; i++) {p[0] = i;long long j0 = 0;std::vector<long long> minv(m + 1, 1e18);std::vector<char> used(m + 1, false);do {used[j0] = true;long long i0 = p[j0], delta = 1e18, j1;for (int j = 1; j <= m; ++j) {if (!used[j]) {long long cur = w[i0][j] - u[i0] - v[j];if (cur < minv[j]) {minv[j] = cur, way[j] = j0;}if (minv[j] < delta) {delta = minv[j], j1 = j;}}}for (int j = 0; j <= m; ++j) {if (used[j]) {u[p[j]] += delta, v[j] -= delta;}else {minv[j] -= delta;}}j0 = j1;} while (p[j0] != 0);do {long long j1 = way[j0];p[j0] = p[j1];j0 = j1;} while (j0);}long long res = 0;for (int i = 1; i <= m; i++) {res += w[p[i]][i];}if(!isSmall) res=-res;return res;}
}

关于捕捞所有宝物的最小消耗体力量的问题相关推荐

  1. 汉诺塔计算移动次数和消耗体力

    题目描述 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着 64 片黄金圆盘.大梵天命令婆罗门把圆盘从下面开始按大 ...

  2. OJ题目9--最小路径、最小消耗的动态规划问题

    一般来讲,涉及到最小路径的问题,目标都会有一个固定的行走模式,也就是说对于行走范围内的某一点而言,到达该点的各种可能性是确定了的(被确定了的行走模式所约束).那么走到一点的最小消耗,就等于所有差一步就 ...

  3. ECSHOP模板堂商品最小起订量插件

    WBB ECshop二次开发博客 Ecshop 最小起订量如何设置 第一步,商品表必须有个字段  代表某个商品 最小订购数量->min_number     打开goods表   在最后字段添加 ...

  4. linq和lambda_最小起订量:应用于模拟对象的Linq,Lambda和谓词

    linq和lambda Kzu and friends have a new pet project called Moq, which may be the coolest derivative o ...

  5. Ecshop 最小起订量如何设置

    第一步,商品表必须有个字段  代表某个商品 最小订购数量->min_number 打开goods表   在最后字段添加一个min_number  tinyint类型 默认值为0  代表没有最小起 ...

  6. ECSHOP最小起订数插件,ECSHOP商品起订数量插件,ECSHOP商品批发限购插件,ecshop商品批发起订量限购插件,ecshop商品购买批发最小起订量数量插件

    ECSHOP插件:ecshop批发商起订量限制插件达到订购量起批. 对自己下面的分销商批发订购商品数量做限制,减少工作量,拒绝无效单.可以在后台单独设置或者批量设置商品的最低订购量.方便供应商管理商品 ...

  7. 牛客-埃森哲杯第十六届上海大学程序设计联赛-A-Wasserstein Distance

    链接:https://www.nowcoder.com/acm/contest/91/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言2621 ...

  8. [SPFA负环]虚空之遗

    题目背景: 自从被异虫击溃,被迫逃离艾尔之后,星灵们就一直想要收复自己的家园.终于,机会来了!阿塔尼斯重新联合了圣堂武士和黑暗圣堂武士,将星灵的信仰牢牢的寄托在神圣的卡拉上,带领星灵的部队重返艾尔!而 ...

  9. Unity 体力值的消耗与恢复

    当角色爬墙.游泳和冲刺时,均消耗体力值 代码 public float strength = 1; public float strengthRecoverStep; public bool isRe ...

最新文章

  1. ios NSLayoutConstraint
  2. stm32f030cc 替换 stm32f030c8 后程序下载失败问题
  3. 管道半双工通信程序linux,Linux进程间通信的几种方法-半双工管道,命名管道,消息队列...
  4. 一般控制矩阵转能控标准型
  5. 剑指offer之二叉树的下一个结点
  6. mysql系统自带示例数据库_MySQL系统自带的数据库information schema
  7. python中scrapy可以爬取多少数据_python中scrapy框架爬取携程景点数据
  8. Java解析Json
  9. python 01列表异或_python基础篇三
  10. Git之Reset的三种模式
  11. POJ2940 HDU1489 UVA11054 Wine Trading in Gergovia【Ad Hoc】
  12. vue案例todolist备忘录
  13. 58、IPv6访问控制列表及ICMPv6简介
  14. 百度文库文档免费下载功能
  15. 【网络通信 -- SIP 电话】项目实战记录 -- FreeSwitch 服务器搭建与典型 SIP 电话应用
  16. poEdit制作WordPress主题汉化,插件汉化攻略
  17. 【蓝队攻防演练思路】From 滴滴蓝军
  18. time_expire时间过短,刷卡至少1分钟,其他5分钟
  19. [网易2017实习生编程题] 魔力手环
  20. 基于tkinter界面requests爬虫实现的学生事务管理平台自动填写系统

热门文章

  1. Choosing Teams
  2. 借win11 WSA升级12l,水一贴升级方法和说说要不要升级win11。
  3. 计算机如何正确开关机,初学台式机电脑开关机的正确操作 电脑定时关机的基础知识...
  4. VC语言文件正文分析器--支持格式常用文件格式
  5. STM32F103C8T6基于Arduino框架下利用定时器跑RBG灯闪烁
  6. Linux 用户管理 4 之密码管理
  7. [从零手写VIO|第五节]——后端优化实践——单目BA求解代码解析
  8. 河南专升本公共英语语法考点分析---动词时态
  9. linux下打印机是文件吗,linux下打印机的配置和使用
  10. Android摇一摇振动效果Demo