LeetCode meituan-003. 小美的跑腿代购(排序)
文章目錄
- 1. 題目
- 2. 解題
1. 題目
小美的一個(gè)兼職是美團(tuán)的一名跑腿代購(gòu)員,她有 n 個(gè)訂單可以接,訂單編號(hào)是 1~n ,
但是因?yàn)橛唵蔚臅r(shí)效性,他只能選擇其中 m 個(gè)訂單接取,精明的小美當(dāng)然希望自己總的獲利是最大的,
已知,一份訂單會(huì)提供以下信息,跑腿價(jià)格 v ,商品重量 w kg,
商品每重 1kg ,代購(gòu)費(fèi)用要加 2 元,而一份訂單可以賺到的錢(qián)是跑腿價(jià)格和重量加價(jià)之和。
小美可是開(kāi)蘭博基尼送貨的人,所以自然不會(huì)在意自己會(huì)累這種事情。
請(qǐng)問(wèn)小美應(yīng)該選擇哪些訂單,使得自己獲得的錢(qián)最多。
請(qǐng)你按照選擇的訂單編號(hào)的從小到大順序,如果存在多種方案,輸出訂單編號(hào)字典序較小的方案。
來(lái)源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/GXV5dX
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
2. 解題
#include<bits/stdc++.h> using namespace std; int main() {int m,n,v,w,i=0;cin >> n >> m;vector<pair<int,int>> arr(n);while(n--){cin >> v >> w;arr[i] = {v+2*w, i+1};//獲利,編號(hào)i++;}sort(arr.begin(), arr.end(),[&](auto a, auto b){if(a.first == b.first)return a.second < b.second;return a.first > b.first;//價(jià)格大的優(yōu)先,標(biāo)號(hào)小的優(yōu)先});sort(arr.begin(), arr.begin()+m,[&](auto a, auto b){return a.second < b.second;//前m個(gè),按編號(hào)排序});i = 0;while(m--){cout << arr[i].second << " ";i++;//輸出編號(hào)}return 0; }24 ms 3.3 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
長(zhǎng)按或掃碼關(guān)注我的公眾號(hào)(Michael阿明),一起加油、一起學(xué)習(xí)進(jìn)步!
總結(jié)
以上是生活随笔為你收集整理的LeetCode meituan-003. 小美的跑腿代购(排序)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LeetCode 1893. 检查是否区
- 下一篇: LeetCode 2150. 找出数组中