文章目录

  • 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阿明),一起加油、一起学习进步!

天池 在线编程 订单分配(回溯)相关推荐

  1. 【组队学习】【34期】阿里云天池在线编程训练营

    阿里云天池在线编程训练营 航路开辟者:陈信达.杨世超.赵子一.马燕鹏 领航员:武帅.初晓宇.叶前坤.邱广坤.朱松青 航海士:宁彦吉.肖桐.汪超.陈信达.杨世超.赵子一.武帅.初晓宇.叶前坤.邱广坤.朱 ...

  2. 天池 在线编程 旅行计划(暴力回溯)

    文章目录 1. 题目 2. 解题 1. 题目 描述 有n个城市,给出邻接矩阵arr代表任意两个城市的距离. arr[i][j]代表从城市i到城市j的距离.Alice在周末制定了一个游玩计划,她从所在的 ...

  3. 天池 在线编程 课程表(拓扑排序 + 回溯)

    文章目录 1. 题目 2. 解题 1. 题目 总共有n个课程,从0到n-1. 有些课程可能有先决条件,例如,你想修课程0,你必须先修一门课程1,这两门课之间的关系表示为:[0,1] 给定课程的总数和先 ...

  4. 天池在线编程 2020年9月26日 日常周赛题解

    文章目录 1. K步编辑 2. 折纸 3. 字符串的不同排列 4. 硬币排成线 题目地址,请点这 1. K步编辑 给出一个只含有小写字母的字符串的集合以及一个目标串(target),输出所有可以经过不 ...

  5. 天池 在线编程 最长AB子串(哈希)

    文章目录 1. 题目 2. 解题 1. 题目 描述 给你一个只由字母'A'和'B'组成的字符串s,找一个最长的子串,要求这个子串里面'A'和'B'的数目相等,输出该子串的长度. 这个子串可以为空. s ...

  6. 天池 在线编程 最大子树(自底向上)

    文章目录 1. 题目 2. 解题 1. 题目 描述 给你一棵二叉树,找二叉树中的一棵子树,他的所有节点之和最大. 返回这棵子树的根节点. 我会把你返回的节点作为最优子树的树根来打印. 数据保证有且仅有 ...

  7. 天池 在线编程 输入流

    文章目录 1. 题目 2. 解题 1. 题目 描述 给出两个输入流 inputA 和 inputB(包含退格符), 如果两个输入流最后的结果相等,输出 YES,否则输出 NO. 输入字符只包括小写字母 ...

  8. 天池 在线编程 推荐朋友(哈希)

    文章目录 1. 题目 2. 解题 1. 题目 描述 给n个人的朋友名单,告诉你user是谁,请找出user最可能认识的人.(他和user有最多的共同好友且他不是user的朋友) n <= 500 ...

  9. 天池 在线编程 停车困境(双指针)

    文章目录 1. 题目 2. 解题 1. 题目 描述 停车场里停着许多汽车. 停车位是一条很长的直线,每米都有一个停车位. 当前很多汽车停放,您想通过建造屋顶来遮雨挡雨. 要求至少有k辆车的车顶被车顶遮 ...

最新文章

  1. RESTful之过滤Filtering
  2. 计算机网络【四】数据链路层基本概念+点到点通信(PPP协议)
  3. 史上最全Spring面试71题与答案
  4. 2018阿里云双12年终大促主会场全攻略
  5. mysql 绕过select报错_Web安全之SQL注入(原理,绕过,防御)
  6. Ubuntu——安装中文拼音输入法
  7. HDU3954 线段树(区间更新 + 点更新)
  8. 界面的创建(高仿QQ登入界面)
  9. c语言城市交通灯优化,城市智能交通灯系毕业设计论文.doc
  10. 国内外知名的统计数据库和统计网站
  11. 陈如波律师:孙宇晨说自己“合法合规”站得住脚吗?
  12. 计算机dns服务器错误或不存在,找不到服务器或 DNS 错误,详细教您找不到服务器或dns错误怎么解决...
  13. BASIS ADM 100标准课程中文版本
  14. 用户需求不等于产品需求
  15. 加密聊天应用依然安全
  16. 基于jQuery实现表单提交验证
  17. 如何加密/弄乱C源代码
  18. linux安装.rpm包及rpm命令
  19. c语言基础输入printf,C语言输入输出 -printf()输出格式大全
  20. springboot毕设项目软件外包服务39e05(java+VUE+Mybatis+Maven+Mysql)

热门文章

  1. pmp思维导图 第六版_PMP考试技巧攻略(上)
  2. CentOS 安装 php
  3. Golang语言基础课件
  4. Django中object.all
  5. 关于在用异步消息处理机制使用Message.Obtain()方法(而非New Message)获得一个Message对象的好处
  6. ubuntu14.04安装git
  7. TCP/IP SOCKET HTTP及HTTPS之间的关系
  8. linux不用命令开启ssh,不用密码也能ssh登陆Linux?
  9. Almost Arithmetic Progression
  10. webpack-安装