問題描述
小明的演算法競賽水平很高,他經常參加網上的比賽。
比賽的規則是這樣的:要在規定時間內解決 n 道題,解決時間越晚失去的 分數就越多。
當然如果有錯誤提交還會扣額外的分數。為了簡化題目,我們假設小明所有 題目都可以一遍 ac。
小明實在是太強了,以致於他看完所有題目就都會做了。
剩下的就是把它們 寫出來的問題。
小明掐指一算,算出了寫每道題需要的時間 ti,以及每道題每分 鍾會失去的分數 ai。
也就是說,如果他在 x 分鐘時完成這道題,他將失去 x * ai 的分數。 請合理安排做題順序,使得當小明做完比賽時,失去的分數盡可能少。
輸入第一行給出乙個正整數 t(t<=10),表示資料組數。
對於每組資料,第一行乙個正整數 n,表示這場比賽的題目數。第二行 n 個 整數,表示做每道題需要的時間 ti。
第三行 n 個整數,表示每題每分鐘失去的分 數 ai。 其中:0輸出
對於每組資料,輸出乙個整數,表示最少失去的分數。
樣例輸入
1310
102012
3
樣例輸出
150
第一次直接用陣列儲存,求出每道題單位時間的得分率,排序後累加即可,但是會時間超限
#include
#include
using
namespace std;
intmain()
for(
int i=
0; i
)int t2,t3;
double t1;
for(
int i=
0;i1;i++)}
}long
long time =
0,num =0;
for(
int i=
0;i) cout<
}}
只好換成結構體用sort
其他做法
題目 H 小明的比賽
題目描述 小明的演算法競賽水平很高,他經常參加網上的比賽。比賽的規則是這樣的 要在規定時間內解決 n 道題,解決時間越晚失去的分數就越多。當然如果有錯誤提交還會扣額外的分數。為了簡化題目,我們假設小明所有題目都可以一遍 ac。小明實在是太強了,以致於他看完所有題目就都會做了。剩下的就是把它們寫出來的...
比賽 2019暑假排位(6)
problems from the 2016 acm icpc asia nha trang regional contest a bcde fghi jkll zy y y z z ylz 直接單調佇列即可 include include include include include inclu...
leetcode2019秋季程式設計比賽
前兩道簡單題應該屬於送分題,但是第二題由於不熟練加上有坑,所以還是做了很久。第二題題目大概意思是給出乙個陣列存放連分數的各個引數 一開始的思路是用double型別的值存結果,最後考慮怎麼把double型別化簡,最後發現比較麻煩。更簡單的方法是每一步儲存n和m兩個變數,然後交換兩者的值,最後一步不交換...