【题解】Luogu P5322 [BJOI2019] 排兵布阵

news/2026/1/14 12:40:34/文章来源:https://www.cnblogs.com/Seqfrel/p/19343768

思路

考虑转化为背包问题。将每个玩家视为一组物品,每个城堡的出兵视为一个物品,因为如果要占领该城堡,就要出严格大于对手两倍的兵,所以每个物品的重量为 \(2\times a_i+1\),每个物品的价值为城堡编号。这样题目就转化为了分组背包问题。

但此题不同组的物品并不是相互独立的,如果选取了重量为 \(j\)\(i\) 个物品,其他组重量小于 \(j\) 的第 \(i\) 个物品也同样可以选取。这启示我们从小到大预处理每个物品在不同组的重量。这样我们就能把物品合并,如果 \(j\) 是第 \(i\) 个物品中第 \(k\) 小的重量,那么比 \(j\) 重量小的物品就可以一并被取到,物品可合并为重量为 \(j\)、价值为 \(i\times k\) 的物品。把不同玩家的物品合并,组就变成了城市。

预处理,对每个城堡所有人的出兵进行排序,在背包时枚举 \(k\) 意为前 \(k\) 小即可。

代码

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int N=110;
const int M=20010;
int s,n,m,ans;
int num[N][N],f[M];
//num_i,j:第i城堡,第j大出兵
//f_i,j:第i城堡,已出j兵
int main(){scanf("%d%d%d",&s,&n,&m);for(int i=1;i<=s;i++){for(int j=1;j<=n;j++) scanf("%d",&num[j][i]);}for(int i=1;i<=n;i++) sort(num[i]+1,num[i]+1+s);for(int i=1;i<=n;i++){for(int j=m;j>=0;j--){for(int k=1;k<=s;k++){if(j>num[i][k]*2) f[j]=max(f[j-(num[i][k]*2+1)]+i*k,f[j]);}}}for(int i=0;i<=m;i++) ans=max(ans,f[i]);printf("%d\n",ans);return 0;
}

时间复杂度 \(O(nms)\)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1004827.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码源挑战赛 Round 41

代码源挑战赛 Round 41 2025.12.12 A. [R41A]出题组3 link\(Solution:\) 用取模模拟即可。code #include <bits/stdc++.h> #define int long long #define ll long long #define ull unsigned long long #define…

详细介绍:NumPy / pandas 类型选型、内存占用与性能优化

详细介绍:NumPy / pandas 类型选型、内存占用与性能优化pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas…

告别选择困难!2025年远程控制软件场景化终极横评

推荐标题&#xff1a;告别选择困难&#xff01;2025年远程控制软件场景化终极横评 在混合办公成为常态的今天&#xff0c;远程控制软件已从“备用工具”升级为“生产力刚需”。面对市场上众多的选择&#xff0c;你是否也曾迷失在AI推荐、朋友安利和广告轰炸中&#xff1f;本文将…

一种可落地的任务令牌锁机制:设计原理、实战经验与容器化演进

以下是最近遇到的一个需求:同一类任务被部署在多个节点(虚拟机/容器)上,同一时刻只能由一个节点执行,但又必须保证高可用:当前节点宕机后,其它节点能够自动接管。如何简单、稳健、易调试地实现这样的需求? Red…

Flink学习笔记:状态类型和应用

Flink 被广泛应用的原因,除了我们前面提到的对时间以及窗口的应用之外,另一点就是它强大的容错机制,以及对 Exactly Once 的支持。Flink 被广泛应用的原因,除了我们前面提到的对时间以及窗口的应用之外,另一点就是…

[JSK]二叉苹果树

[JSK]二叉苹果树 大意 给定需要保留的树枝数量,求出最多能留住多少苹 果。苹果长在树枝上。 思路 这个题目和选课最大的不同在于其需要累加的贡献在边上,因此我们依旧设 \(f_{u, j}\),则有转移方程如下: \[f_{u, j…

Day 36 官方文档的阅读

浙大疏锦行 官方文档的检索方式&#xff1a;GitHub和官网 官方文档的阅读和使用&#xff1a;要求安装的包和文档为同一个版本 类的关注点&#xff1a; a.实例化所需要的参数 b.普通方法所需要的参数 c.普通方法的返回值 绘图的理解&#xff1a;对底层库的调用 import p…

【题解】Luogu P8137 [ICPC2020 WF] ’S No Problem

题目大意 给定一个无向树。有两个扫雪机可以任意选择出发终止点,可以走回头路。求两个扫雪机遍历整个树所需的最短路程。 解题思路 不妨先考虑只有一个扫雪机的情况。 我们知道,在无向树上从任意一个结点出发,将所有…

青少年编程学习:考级与竞赛如何平衡

青少年编程学习:考级与竞赛如何平衡 家长最关心的三个编程问题 在青少年编程学习过程中,家长常常面临几个核心困惑: 孩子学习编程,参加等级考试是否有必要? 在众多考试中,NCT和GESP应该如何选择? 如何平衡考级准备与竞赛训练,避免顾此失彼? 一、编程考级的价值:以考…

2025 Autel MaxiVCI V150 Wireless Dongle: CAN FD/DOIP for Autel 900 Series Scanners

The Diagnostic Tool Gap: Modern Vehicles Demand Modern Solutions For European and American automotive professionals and car owners, staying ahead of evolving vehicle technology is a daily challenge. To…

【UI Qt】入门笔记

目录 1、Qt 主要版本发展历程 2、各版本详细对比表 3、底层库对比 4、Qt基类 5、举例 6、QApplication与窗口关联 1、Qt 主要版本发展历程 版本 发布年份 主要特点 当前状态 Qt 1 1995 第一个公开版本&#xff0c;仅支持 Unix/X11 已淘汰 Qt 2 1999 引入信号槽…

WSL安装方法

WSL安装方法 【告别双系统,在Windows上无缝运行Linux,并使用GPU】传统双系统(独立安装 Windows + Linux) 优点:直接运行在硬件上,无性能损失。 缺点:每次切换系统都要重启电脑。虚拟机(VMware / VirtualBox) …

Ubuntu环境中LLaMA Factory 的部署与配置—构建大语言模型微调平台 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【题解】Luogu P8269 [USACO22OPEN] Visits S

思路 容易发现题目给出了一张 \(n\) 个点 \(n\) 条边的有向图,联想到基环树。又因为每个点出度均为一所以是内向基环树。 考虑到题目中的“拜访”类似于拓扑排序,冲突仅存在于环上,所以总边权和去掉环上最小的一条边…

2025贵阳公墓/公益公墓top5推荐!贵阳优质生态陵园榜单发布,合规保障与人文关怀兼具的安息之所推荐 - 全局中转站

引言 随着社会文明的进步和殡葬观念的转变,公众对公墓的选择不再仅关注基本功能,更注重资质合规性、生态环境、服务品质及人文关怀。据中国殡葬协会最新行业报告显示,全国城市经营性公墓合规率约为72%,而同时具备公…

【题解】Luogu P2354 [NOI2014] 随机数生成器

题意 题面花里胡哨。直接看到棋盘那一段,告诉我们 \(K=N\times M\),也就是按给定递推式算出前 \(N\times M\) 项,按规定交换 \(1\sim K\) 的递增序列,最后再按顺序填入 \(N \times M\) 的数表。在上面找排序后字典…

基于Django的农场管理系统

&#x1f345; 作者主页&#xff1a;Selina .a &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作。 主要内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据…

rsync交叉编译步骤

1. 系统环境 1.1 目标系统环境 DISTRIB_ID=OpenWrt DISTRIB_RELEASE=21.02-SNAPSHOT DISTRIB_REVISION=unknown DISTRIB_TARGET=mediatek/mt7988 DISTRIB_ARCH=aarch64_cortex-a53 DISTRIB_DESCRIPTION=OpenWrt 21.02-…

【题解】P11453 [USACO24DEC] Deforestation S

题意 数轴上有 \(n\) 个整点,求最多删除多少个整点,使得 \(k\) 个条件依然满足。每个条件形如:在 \([l_i,r_i]\) 范围内至少存在 \(t_i\) 个整点。 思路 删点操作有悖于满足条件的逻辑,因此正难则反,考虑最少保留…

下载UCI数据集《Secondary Mushroom》

说明:查看代码 1. Title: Primary mushroom data2. Sources:(a) Mushroom species drawn from source book:Patrick Hardin.Mushrooms & Toadstools.Zondervan, 1999(b) Inspired by this mushroom data:Jeff Sch…