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

17085 工作分配问题(优先做)

这个问题可以通过回溯法来解决。我们可以遍历所有可能的工作分配方案,然后找出总劳务费用最小的方案。

以下是C++代码实现:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;const int INF = 1e9;
const int MAXN = 15;
int n;
int cost[MAXN][MAXN];
int dp[1 << MAXN];
int path[MAXN], bestPath[MAXN];
int minCost = INF;void dfs(int u, int state, int sum) {if (sum >= minCost) return; // 剪枝if (u == n) {minCost = sum;copy(path, path + n, bestPath);return;}for (int i = 0; i < n; i++) {if (!(state >> i & 1)) {path[u] = i + 1;dfs(u + 1, state | 1 << i, sum + cost[u][i]);}}
}int main() {cin >> n;for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {cin >> cost[i][j];}}dfs(0, 0, 0);cout << minCost << endl;for (int i = 0; i < n; i++) {cout << bestPath[i] << ' ';}return 0;
}

在这段代码中,我们首先读取输入的工作数n和每个工作的劳务费用。然后我们使用深度优先搜索遍历所有可能的工作分配方案。对于每个方案,我们计算总劳务费用,并更新最小总劳务费用和最佳工作分配方案。最后,我们输出最小总劳务费用和最佳工作分配方案。

这段代码的时间复杂度是O(n!),因为我们需要遍历所有可能的工作分配方案。这段代码的空间复杂度是O(n),因为我们需要存储每个工作的劳务费用和工作分配方案。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C# 设计模式之抽象工厂模式
  • 定时器知识点
  • Go语言加Vue3零基础入门全栈班15 gin+gorm+vue3用户管理系统实战录播课 2024年08月04日 课程笔记
  • Python爬虫与MongoDB的完美结合
  • 《零散知识点 · 自定义 HandleMapping》
  • 鸿蒙媒体开发【相机数据采集保存】拍照和图片
  • 大模型术语表
  • 24年第五届“华数杯”数学建模竞赛浅析
  • 利用ffmpeg转码视频为gif图片,调整gif图片的大小
  • 全球氢燃料电池汽车市场规划预测:未来六年CAGR为44.4%
  • 前端-防抖代码
  • App推广新利器:Xinstall携带参数安装功能详解
  • FIR低通滤波器
  • 可验证随机函数 vrf 概述
  • Boost:asio网络编程从同步到异步
  • @angular/forms 源码解析之双向绑定
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • extract-text-webpack-plugin用法
  • httpie使用详解
  • java概述
  • js
  • Node 版本管理
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • 多线程 start 和 run 方法到底有什么区别?
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 算法---两个栈实现一个队列
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 正则表达式小结
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • raise 与 raise ... from 的区别
  • 组复制官方翻译九、Group Replication Technical Details
  • ​VRRP 虚拟路由冗余协议(华为)
  • #pragam once 和 #ifndef 预编译头
  • #Spring-boot高级
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (12)目标检测_SSD基于pytorch搭建代码
  • (2024)docker-compose实战 (8)部署LAMP项目(最终版)
  • (SpringBoot)第二章:Spring创建和使用
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (十六)视图变换 正交投影 透视投影
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (四)软件性能测试
  • (一)Docker基本介绍
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转)负载均衡,回话保持,cookie
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • .chm格式文件如何阅读
  • .NET 8 跨平台高性能边缘采集网关
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .net FrameWork简介,数组,枚举
  • .NET 中让 Task 支持带超时的异步等待
  • .NET建议使用的大小写命名原则
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作