時間限制: 1 sec 記憶體限制: 128 mb
提交: 24 解決: 19
[狀態] [提交] [命題人:admin]
題目描述
為了能過個好年,xhd開始複習了,於是每天晚上揹著書往教室跑。xhd複習有個習慣,在複習完一門課後,他總是挑一門更簡單的課進行複習,而他複習這門課的效率為兩門課的難度差的平方,而複習第一門課的效率為100和這門課的難度差的平方。xhd這學期選了n門課,但是一晚上他最多只能複習m門課,請問他一晚上覆習的最高效率值是多少?
輸入輸入資料的第一行是乙個資料t,表示有t組資料。
每組資料的第一行是兩個整數n(1 <= n <= 40),m(1 <= m <= n)。
接著有n行,每行有乙個正整數a(1 <= a <= 100),表示這門課的難度值。
輸出對於每組輸入資料,輸出乙個整數,表示最高效率值。
樣例輸入 copy
22 2
5225
12 5
8964643
5672
9223
2022
3731
樣例輸出 copy
5625
8836
這道題的關鍵就是找到規律,一開始我也很懵,感覺這是一道超級麻煩的題目,但是在高人指點過後,發現了規律,就是找出最小的然後平方就是啦
題意:複習第一門課的效率為100和這門課的難度差的平方。
看作:一開始便挑選了一門複習難度為100且複習效率為0的特殊課程s。
如果:將所選的m門課程與s按照複習難度降序排列為a0,a1,a2,…,am(顯然有a0=s)。
根據:(a0-a1)+(a1-a2)+…+(am-1-am)=(a0-am)。
就有:(a0-a1)2+(a1-a2)2+…+(am-1-am)2≤(a0-am)2。
也即:任選m門課程不會優於只選擇這些課程中複習難度最小的那門。
#include
using
namespace std;
#define maxn 1e9+7
intmain()
small=
100-small;
printf
("%d\n"
,small*small);}
return0;
}
R 複習時間
為了能過個好年,xhd開始複習了,於是每天晚上揹著書往教室跑。xhd複習有個習慣,在複習完一門課後,他總是挑一門更簡單的課進行複習,而他複習這門課的效率為兩門課的難度差的平方,而複習第一門課的效率為100和這門課的難度差的平方。xhd這學期選了n門課,但是一晚上他最多只能複習m門課,請問他一晚上覆習...
hdu 2078 複習時間
problem description 為了能過個好年,xhd開始複習了,於是每天晚上揹著書往教室跑。xhd複習有個習慣,在複習完一門課後,他總是挑一門更簡單的課進行複習,而他複習這門課的效率為兩門 課的難度差的平方,而複習第一門課的效率為100和這門課的難度差的平方。xhd這學期選了n 門課,但是...
HDOJ 2078 複習時間
題意 有n門要複習的功課,使得複習難度越來越低,並且兩門課之間難度差的平方和盡可能的大,求要怎麼對要複習的功課進行排序。思路 dp,對難度排序,轉移方程dp i j max dp i j dp i 1 j k abs num j num j k abs num j num j k dp i j 表示...