P2066 机器分配 - 洛谷

题目描述

总公司拥有高效设备M台,准备分给下属的N个分公司。各分公司若获得这些设备,可以为国家提供一定的盈利。问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值。其中M⩽15,N⩽10。分配原则:每个公司有权获得任意数目的设备,但总台数不超过设备数M。

输入格式

第一行有两个数,第一个数是分公司数N,第二个数是设备台数M。

接下来是一个N×M的矩阵,表明了第i个公司分配j台设备的盈利。

最大盈利值相同时,要求编号小的公司分得设备尽可能少。

输出格式

第一行为最大盈利值。

接下来N行为第i分公司分x台。

输入输出样例

输入 #1输出 #1
3 3
30 40 50
20 30 50
20 25 30
70
1 1
2 1
3 1

思路:
代码:

#include<bits/stdc++.h>
using namespace std;
int n, m;
int val[20][20];  // 存储每个公司分配不同设备的盈利
int best[20];     // 最优分配方案
int current[20];  // 当前分配方案
int max_profit = 0;  // 最大盈利// DFS函数:x=当前公司编号,Nprofit=当前盈利,Nremain=剩余设备
void dfs(int x, int Nprofit, int Nremain) 
{if (Nremain < 0) return;  // 设备不足,剪枝if (x > n) {  // 所有公司处理完毕if (Nprofit > max_profit) {max_profit = Nprofit;for (int i = 1; i <= n; i++) {best[i] = current[i];}}return;}// 枚举当前公司分配的设备数for (int k = 0; k <= Nremain; k++) {current[x] = k;  // 记录当前分配dfs(x + 1, Nprofit + val[x][k], Nremain - k);  // 递归处理下一个公司}
}int main() 
{cin >> n >> m;for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {cin >> val[i][j];}}dfs(1, 0, m);  // 从第1个公司开始DFScout << max_profit << endl;  // 输出最大盈利for (int i = 1; i <= n; i++) {cout << i << " " << best[i] << endl;  // 输出最优分配方案}return 0;
}

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

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

相关文章

Vue 复制页面内容

方法 1&#xff1a;使用 document.execCommand(copy) 在用户触发的事件中 这种方法适用于用户触发的事件&#xff08;如点击按钮&#xff09;&#xff0c;因为这是 execCommand(copy) 的唯一允许场景。 <template><button click"copyToClipboard">复制…

暑期前端训练day1

js——记忆函数 2025-06-19 day1 一、记忆函数Ⅰ&#xff1a; 链接&#xff1a;https://leetcode.cn/problems/memoize/?envTypeproblem-list-v2&envIdGR5hbGen (1) 题意&#xff1a;给定一个函数&#xff0c;返回一个记忆版的函数&#xff0c;其中你只会包含三个可能输…

鸿蒙网络编程系列54-仓颉版实现Smtp邮件发送客户端

1. SMTP邮件发送客户端 在本系列的第4篇文章《鸿蒙网络编程系列4-实现SMTP邮件发送客户端》中&#xff0c;基于ArkTS语言在API9环境下使用TCPSocket对象演示了SMTP客户端的实现&#xff0c;并且通过腾讯邮件服务器执行了实际的邮件发送。不过&#xff0c;在2024年末&#xff0…

【慧游鲁博】【12】UI美化·图标选择与变换·动态交互·格式定义

文章目录 图标设计迭代过程初始版本问题分析优化措施 游览画卷美化原因当前效果展示美化步骤(1) 代码修改结构优化CSS&#xff08;优化样式&#xff09; (2) 图标选择&#xff08;4种方案&#xff09;(3) 交互优化 版本一版本二1. 修改HTML结构2. 新增CSS样式色彩控制技术性能优…

IMU介绍

IMU(Inertial Measurement Unit,惯性测量单元)是一种基于惯性原理的传感器,通过测量物体的加速度和角速度来获取运动状态信息。以下从技术原理、核心组件、应用场景及关键指标等方面展开详细解析: 一、IMU的技术原理与核心组件 1. 工作原理 惯性力学基础:利用牛顿第二定…

MOS管和比较器

目录 前言一、前置器件复习使用1.比较器工作特性2.光电二极管3.红外出水水龙头4.温控风扇工作原理 二、MOS管1.前置1.1 增强型MOS管1.2 耗尽型MOS管1.3 四种1.4 比较 2.基本结构3.导通条件4.开关电路的设计方法5.寄生电容问题6.寄生二极管不能忽略7.Nmos管做电源开关的注意事项…

从代码学习深度强化学习 - Double DQN PyTorch版

文章目录 前言理论篇:为什么需要 Double DQN?代码实现篇:构建一个 Double DQN 智能体2.1 项目设置与辅助函数2.2 环境 (Environment)2.3 DQN 的核心组件2.3.1 Replay Buffer (经验回放池)2.3.2 Q-Network (Q网络)2.3.3 The Double DQN Agent (Double DQN 智能体)训练与结果3…

四非鼠鼠计算机专业的保研分享

四非鼠鼠的计算机专业保研分享 1.前言 鼠鼠的本科学校是一所不怎么出名的四非院校&#xff0c;专业是计算机科学与技术。在写下这篇文章时&#xff0c;鼠鼠并不是为了炫耀什么&#xff0c;而是想把自己在保研路上的一些踩坑经历分享出来&#xff0c;尤其是写给那些和我一样&a…

【C++详解】STL-vector使用底层剖析和实现

文章目录 vector介绍vector和string的区别补充知识initializer_listemplace_back结构化绑定 vector的使用构造析构遍历修改insertfind流插入/流提取vector\<vector>(杨辉三角) vector模拟实现浅品STL源码构造函数拷贝构造多参数构造迭代器区间构造n个val初始化swapoperat…

MySql升级安装、socket 及密码重置

升级 项目需要使用Mysql8.0, 查看自己的ubuntu22.04上mysql版本为5.7&#xff0c; 使用以下命令自动升级到8.0版本。 sudo apt install Mysqlsock错误&#xff1a; Can’t connect to local MySQL server through socket 运行mysql -u -p 报以下错误&#xff1a; ERROR 200…

Python网络爬虫技术:从入门到实战

在当今数字化时代&#xff0c;网络爬虫技术已经成为数据挖掘和信息收集的重要工具。通过网络爬虫&#xff0c;我们可以高效地从互联网上获取大量有价值的数据&#xff0c;用于数据分析、市场研究、学术研究等多种场景。本文将带你从零开始&#xff0c;了解Python网络爬虫的基本…

偏微分方程初值问题求解

题目 问题 2. (a) u t + 3 u x − 2 u y = x ; u t + x u x + y u y = x ; u_t + 3u_x - 2u_y = x; \quad u_t + xu_x + yu_y = x; ut​+3ux​−2uy​=x;ut​+xux​+yuy​=x; u t + x u x − y u y = x ; u t + y u x + x u y = x ; u_t + xu_x - yu_y = x; \quad u_t + yu_…

【专业梳理】PMP知识体系,以SIPOC流程图为核心的质量工具扩展

​​1. SIPOC流程图:质量管理的起点​​ SIPOC(Supplier-Input-Process-Output-Customer)是六西格玛和流程管理中的核心工具,用于定义和优化跨职能流程。在PMBOK中,它与质量管理知识领域(尤其是质量规划、质量保证)紧密关联: ​​质量规划​​:通过SIPOC明确流程边界…

OpenCV指定pid和vid通过MSMF打开摄像头

在基于OpenCV的项目中&#xff0c;实际开发过程会面临设备上存在多个摄像头&#xff0c;需要指定摄像头的pid和vid打开摄像头。在OpenCV通过MSMF打开摄像头时&#xff0c;需要传入摄像头的index&#xff0c;因此需要在打开该摄像头前需要找出摄像头的index&#xff0c;下面给出…

STM32F103ZET6系统启动过程

STM32F103ZET6系统启动过程 一、概述 STM32F103ZET6启动过程指硬件选择启动模式后,执行固件程序之前的一系列动作。对于系统存储器模式,系统执行Bootloader程序升级状态,检测数据进行串口升级;对于内部Flash模式,系统执行启动文件,设置堆栈大小,配置系统时钟,最终调用…

[Data Pipeline] Kafka消息 | Redis缓存 | Docker部署(Lambda架构)

第七章&#xff1a;Kafka消息系统&#xff08;实时流处理&#xff09; 欢迎回到数据探索之旅&#xff01; 在前六章中&#xff0c;我们构建了强大的**批量处理流水线**。 通过Airflow DAG&#xff08;批量任务编排&#xff09;协调Spark作业&#xff08;数据处理&#xff09;…

jquery 赋值时不触发change事件解决——仙盟创梦IDE

一、传统方法jquey change $(#village_id).trigger(change);$("#village_id").val(99);$("#village_id").change(); 不生效 二、传统方法jquey $(#village_id).trigger(change); 四、传统方法jquey <input type"text" /> <button…

Android | 签名安全

检验和签名 校验开发者在数据传送时采用的一种校正数据的一种方式&#xff0c; 常见的校验有:签名校验(最常见)、dexcrc校验、apk完整性校验、路径文件校验等。 通过对 Apk 进行签名&#xff0c;开发者可以证明对 Apk 的所有权和控制权&#xff0c;可用于安装和更新其应用。…

Android14 耳机按键拍照

在相机拍照预览界面 通过耳机按键实现拍照功能 耳机按键定义 frameworks/base/core/java/android/view/KeyEvent.java public static final int KEYCODE_HEADSETHOOK 79;相机界面 拍照逻辑 DreamCamera2\src\com\android\camera\PhotoModule.java Override public bool…

【AI作画】第2章comfy ui的一般输入节点,文本框的类型和输入形式

目录 CLIP文本编码器 条件输出和文本输出 转换某一变量为输入 展示作品集 在默认的工作流之外&#xff0c;我们如何自己添加节点呢&#xff1f; 一般我们用到的sampler采样器在“鼠标右键——添加节点——采样——K采样器” 我们用的clip文本编码器在“鼠标右键——添加节…