神犇航空開展了一項載客特技飛行業務。每次飛行長N個單位時間,每一個單位時間能夠進行一項特技動做,可選的動做有K種,每種動做有一個刺激程度Ci。若是連續進行相同的動做,乘客會感到厭倦,因此定義某次動做的價值爲(距上次該動做的時間)*Ci,若爲第一次進行該動做,價值爲0。安排一種方案,使得總價值最大。
spa
神犇航空開展了一項載客特技飛行業務。每次飛行長N個單位時間,每一個單位時間能夠進行一項特技動做,可選的動做有K種,每種動做有一個刺激程度Ci。若是連續進行相同的動做,乘客會感到厭倦,因此定義某次動做的價值爲(距上次該動做的時間)*Ci,若爲第一次進行該動做,價值爲0。安排一種方案,使得總價值最大。
spa
12blog
簡單的推一下咱們能夠發現一個動做的價值就是(最後一次的時間-第一次的時間)*c[i] 因此這就變成了一道貪心水題.
ip
#include <cstdio> #include <algorithm> int a[301]; bool cmp(int a, int b) {return a>b;} int main() { int n, k; scanf("%d%d", &n, &k); int ans = 0; for(int i=0;i<k;i++)scanf("%d", &a[i]); std::sort(a, a+k, cmp); n--; int i=0; while(n>0 && i<k) { ans+=n*a[i]; i++, n-=2; } printf("%d\n", ans); }