天池 在线编程 订单分配(回溯)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

描述
打车派单场景, 假定有N个订单,待分配给N个司机。
每个订单在匹配司机前,会对候选司机进行打分,打分的结果保存在N*N的矩阵score,其中score[i][j]代表订单 i 派给司机 j 的分值。
假定每个订单只能派给一位司机,司机只能分配到一个订单。
求最终的派单结果,使得匹配的订单和司机的分值累加起来最大,并且所有订单得到分配。

在这里插入图片描述

题目保证每组数据的最大分数都是唯一的

示例

样例 1
输入:
[[1,2,4],[7,11,16],[37,29,22]]
输出:
[1,2,0]
解释:
标号为0的订单给标号为1的司机,获得 score[0][1] = 2 分,
标号为1的订单给标号为2的司机,获得 score[1][2] = 16 分,
标号为2的订单给标号为0的司机,获得 score[2][0] = 37 分,
所以一共获得了 2 + 16 + 37 = 55 分。

https://tianchi.aliyun.com/oj/403958541416425656/430542446415516442

2. 解题

class Solution {
public:/*** @param score: When the j-th driver gets the i-th order, we can get score[i][j] points.* @return: return an array that means the array[i]-th driver gets the i-th order.*/int ans = 0;//最大总和vector<int> path;//选取的最佳方案vector<int> orderAllocation(vector<vector<int>> &score) {// write your code hereint n = score.size();vector<bool> vis(n, false);vector<int> p(n);dfs(score, vis, 0, 0, p);return path;}void dfs(vector<vector<int>> &score, vector<bool>& vis, int i, int val, vector<int>& p){if(i == score.size()){if(val > ans){ans = val;path = p;}return;}for(int j = 0; j < score.size(); ++j){if(vis[j]) continue;//物品 j 被选了vis[j] = true;p[i] = j; // 选取的方案 , i 选取了 j 物品dfs(score, vis, i+1, val+score[i][j], p);vis[j] = false;}}
};

54ms C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

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

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

相关文章

2015年北京户口全攻略

最新统计数据指出 截至2013年底&#xff0c;北京市常住人口为2114.8万人&#xff0c;其中常住外来人口为802.7万人。和“北京户口”捆绑的字眼&#xff0c;历来是身份、福利&#xff0c;以至于幸福感、安全感。那么北京户口有什么好处&#xff1f;外来人口如何落户北京呢&#…

水晶报表 jar包版本过低_工具类学习-UReport报表设计器整合

dada-report报表整合UReport报表设计器工具结合日常工作和学习实践&#xff0c;针对传统报表子站面临的问题&#xff0c;尝试借助UReport报表设计器解决1.可在现有工程基础上引入Ureport2报表设计器Ureport报表设计器是一个基于WEB的在线报表设计器&#xff0c;其具有良好的界面…

LeetCode 1844. 将所有数字用字符替换

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的字符串 s &#xff0c;它的 偶数 下标处为小写英文字母&#xff0c;奇数 下标处为数字。 定义一个函数 shift(c, x) &#xff0c;其中 c 是一个字符且 x 是一个数字&#xff0c;函数返回字母表中 c 后面第 x 个字符。 …

ffmpeg编译gb28181_国标GB28181对接视频流

今天抽空写下以GB28181的方式获取摄像机视频流以备后用&#xff0c;同时也希望能帮助到正着手开发GB28181对接视频的同学&#xff0c;这块的资料实在不多。今天讲的内容不涉及到平台对接&#xff0c;平台对接下次有时间再讲&#xff0c;平台对接相对更麻烦点。通过GB28181获取摄…

表格布局等

1.设置黑色细边框技巧 表格的边框0;间距1;背景黑色; 单元格 背景 白色 2.特殊字符使用软键盘 3.使用图像占位符暂时代替未制作好的图片 4.小的背景.gif 平铺变成大的长条,占用资源少 5.当设置一个单元格的高度小于一定值时,无效;因为默认里面有一个空格字符,需要在代码里将空格…

LeetCode 1845. 座位预约管理系统(set)

文章目录1. 题目2. 解题1. 题目 请你设计一个管理 n 个座位预约的系统&#xff0c;座位编号从 1 到 n 。 请你实现 SeatManager 类&#xff1a; SeatManager(int n) 初始化一个 SeatManager 对象&#xff0c;它管理从 1 到 n 编号的 n 个座位。所有座位初始都是可预约的。in…

unity game和scene效果不一样_不同的真石漆装饰效果也是不一样的

外墙真石漆真的是一件很好的产品&#xff0c;具有防火性、防水性、安全且环保、粘力强、永不褪色等特点&#xff0c;无疑是人们较好的选择&#xff0c;在很早之前就已经逐渐的取代了瓷砖和其他石材在人们心中的位置。真石漆的品种不止一种&#xff0c;按照装饰效果我们可以分为…

噪声产生原因_空调噪声大?啄木鸟家庭维修,看看属于哪一个问题

夏天终于要结束了&#xff0c;我只想安静的睡一个好觉。这个夏天中&#xff0c;楼上的空调每夜不休不眠的工作着&#xff0c;可这个空调为什么运作时的声音这么“巨大”。“轰轰轰……”&#xff0c;楼层都似乎和它产生了共振。而每晚的我&#xff0c;反反复复努力入睡&#xf…

05-按钮的基本使用-开发步骤

从Xcode5开始&#xff0c;图片资源都放到Images.xcassets中进行管理先添加必须的图片到Images.xcassets中调整界面尺寸 由于模拟器的默认尺寸是3.5inch&#xff0c;为了避免出现不必要的麻烦&#xff0c;最好将storyboard中的UI界面尺寸也调整为3.5inch添加4个方向按钮和2个缩放…

【机器学习】sklearn数据特征预处理:归一化和标准化

归一化处理 特点&#xff1a;通过对原始数据进行变换把数据映射到(默认为[0,1])之间 from sklearn.preprocessing import MinMaxScaler def mm():"""归一化处理:return: NOne"""mm MinMaxScaler(feature_range(2,3))data mm.fit_transform(…

LeetCode 1848. 到目标元素的最小距离

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 nums &#xff08;下标 从 0 开始 计数&#xff09;以及两个整数 target 和 start &#xff0c;请你找出一个下标 i &#xff0c;满足 nums[i] target 且 abs(i - start) 最小化 。注意&#xff1a;abs(x) 表示 x 的绝对值。…

python环境变量的运用_Windows下python环境变量配置

默认情况下&#xff0c;在windows下安装python之后&#xff0c;系统并不会自动添加相应的环境变量。此时不能在命令行直接使用python命令。1. 首先需要在系统中注册python环境变量&#xff1a;假设python的安装路径为c:\python2.6&#xff0c;则修改我的电脑->属性->高级…

python拆分合并文件_Python 视频文件的分割和合并

import os; import time; os.system(start "wmplayer.exe", "F:\\abc.mp4"); --分割代码 start---- import sys,os; kilobytes 1024; megabytes kilobytes*1024; chunksize int(10*megabytes); def split(fromfile,todir,chunksizechunksize): if not o…

[笔记]Go语言写文件几种方式性能对比

Go语言中写文件有多种方式&#xff0c;这里进行如下几种方式的速度对比&#xff1a; 打开文件&#xff0c;写入内容&#xff0c;关闭文件。如此重复多次打开文件&#xff0c;写入内容&#xff0c;defer 关闭文件。如此重复多次打开文件&#xff0c;重复多次写入内容&#xff0c…

【机器学习】sklearn数据集获取、分割、分类和回归

sklearn数据集1、数据集划分1.1 获取数据1.2 获取数据返回的类型举个栗子&#xff1a;1.3 对数据集进行分割举个栗子&#xff1a;2、 sklearn分类数据集3、 sklearn回归数据集1、数据集划分 机器学习一般的数据集会划分为两个部分&#xff1a; 训练数据&#xff1a;用于训练&a…

LeetCode 1846. 减小和重新排列数组后的最大元素

文章目录1. 题目2. 解题1. 题目 给你一个正整数数组 arr 。请你对 arr 执行一些操作&#xff08;也可以不进行任何操作&#xff09;&#xff0c;使得数组满足以下条件&#xff1a; arr 中 第一个 元素必须为 1 。任意相邻两个元素的差的绝对值 小于等于 1 &#xff0c;也就是…

ftp可以传输什么类型文件_FTP文件传输工具-ForkLift for Mac

orklift mac版是一款运行在Mac平台上的FTP文件传输工具。ForkLift拥有经典的两栏界面布局&#xff0c;简洁小巧。且支持FTP&#xff0c;SFTP&#xff0c;WebDAV&#xff0c;S3&#xff0c;iDisk&#xff0c;SMB&#xff0c;AFP和NIS协议&#xff0c;可以方便用户对本地以及远程…

1过程流程图 3 apqp_为什么过程开发的平面布置图要遵循精益原则?

今日话题为什么过程开发的平面布置图要遵循精益原则&#xff1f;问为什么过程开发的平面布置图要遵循精益原则&#xff1f;答工艺工程师根据过程流程图制定平面布置图&#xff0c;采用精益制造的原则&#xff0c;对加工与装配工位、物流路线、存储位置进行规划&#xff0c;以确…

把Scala代码当作脚本运行

1. 在类UNIX系统上作为脚本运行 在类Unix系统上&#xff0c;你可以设置一个shell前导词来执行脚本。如下例&#xff1a; Script.scala #!/usr/bin/env scala !# println("Hello" args(0)) 先输入chmod x Script.scala&#xff0c;确保对Script.scala文件有执行权限。…

LeetCode 1847. 最近的房间(排序离线计算 + 二分查找)

文章目录1. 题目2. 解题1. 题目 一个酒店里有 n 个房间&#xff0c;这些房间用二维整数数组 rooms 表示&#xff0c;其中 rooms[i] [roomIdi, sizei] 表示有一个房间号为 roomIdi 的房间且它的面积为 sizei 。每一个房间号 roomIdi 保证是 独一无二 的。 同时给你 k 个查询&…