2019小明的比賽c

2021-10-06 03:07:44 字數 1412 閱讀 8356

問題描述

小明的演算法競賽水平很高,他經常參加網上的比賽。

比賽的規則是這樣的:要在規定時間內解決 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兩個變數,然後交換兩者的值,最後一步不交換...