典型的動態規劃問題,不過一些細節處理起來還是很糟心的,可以參考的解析
現在有乙個服務收費方案:在時間段1st<6內,每單位時間收費為10元;在時間段
6st<10內,每單位時間收費為5元;在時間段tz10,每單位時間收費為2元。該服務
同時只能為乙個使用者服務,假如有一批使用者都需要請求該服務,請編寫一段程
序,選擇出若干使用者請求進行服務,使得總的收費達到最多,並列印出依次服務
的使用者編號。
輸入描述
輸入資料有1行,包含每個使用者的編號、開始服務時間和結束服務時間(中
間以空格隔開,使用者間以逗號和空格隔開)。上面例子的輸入如下:
114.226,3312.4610
「1 1 4"中的第1個1代表使用者編號為1,第2個1代表的是開始服務時間,4代
表結束服務時間,總的服務時間為4 -1-3,對應的費用為(4 1)*10-30;
「22 6"中的第1個2代表使用者編號為2,第2個2代表的是開始服務時間,6代
表結束服務時間,總的服務時間為6 2=4,對應的費用為(6- 2)*10=40;
"33 12"中的第1個3代表使用者編號為3,第2個3代表的是開始服務時間,12
代表結束服務時間,總的服務時間為12- 3=9,對應的費用為(6-3)*10+(10-
6)*5+(12-10)*2=54;
「46 10」中的4代表使用者編號為4,6代表的是開始服務時間,10代表結束服
務時間,總的服務時間為10-6-4, 對應的費用為(10-6)*5-20。
輸出描述
60,24
其中,60代表的是最多的總費用(其中包括使用者2的40和使用者4的20) 中間
以逗號和空格隔開,*2 4"代表的是依次服務的使用者編號。
樣例輸入
1 1 4.226,3312, 4610
樣例輸出
60,24
/*功能:*/
#include "./stdc++.h"
using namespace std;
int monye(int start, int end)
if (end < 10)
res += (end - 6) * 5;
} if (end >= 10)
else if (start < 10)
res += (end - 10) * 2;
} return res;
}int main()
vec.push_back(tmp);
default:
break;
} }int n = vec.size();
vectordp(n, 0);
vectorpre(n, 0);
vector> id;
for (int i = n - 1; i >= 0; --i)
} }for (int i = 0; i < n; ++i)
if (pre[i] == 0)
else
id.push_back(id_tmp);
}} else
id.push_back(id_tmp);
id[id.size() - 1].push_back(vec[i][0]);
}else
id.push_back(id_tmp);
}} }
cout << dp[dp.size() - 1] << ", ";
for (auto i : id[id.size() - 1])
return 0;
}// hello undo redo world.
//1 1 4, 2 2 6, 3 3 12, 4 6 10
大疆筆試0804
崗位 後端研發 筆試兩種題型 12道不定項選擇和三道程式設計題 第一題 輸入 多組測試資料。每組測試資料如下 第一行輸入三個整數 n a x,分別代表需要解決的bug數量 喝咖啡之後效率提公升的倍數 一天最多可以喝掉的咖啡數 第二行輸入n個整數,表示在不喝咖啡的情況下解決這些八阿哥所需的時間t1,t...
大疆網上測評題庫 大疆筆試題
大疆筆試的體驗很好,沒有很為難應聘者,還有著自己鮮明的特點,我認為值得 一說,特此寫筆經記錄一下,順便攢攢 rp,第一次筆經就獻給大疆啦 筆試 是大疆自己搭建的 ui設計炒雞好看!我猜題目也是大疆 hr團隊自己出的。從這點來看,大疆對人才的把控很嚴格,必須是自己經手選出來 的人。整套筆試題目共有 道...
大疆筆試題 struct大小例項
32位機執行 記憶體對齊的三條重要原則 資料成員對齊規則 結構 struct 或聯合 union 的資料成員,第乙個資料成員放在offset為0的地方,以後每個資料成員儲存的起始位置要從該成員大小的整數倍開始 比如int在 位機為 位元組,則要從 的整數倍位址開始儲存。結構體作為成員 如果乙個結構裡...