description
神犇航空開展了一項載客特技飛行業務。每次飛行長n個單位時間,每個單位時間可以進行一項特技動作,可選的動作有k種,每種動作有乙個刺激程度ci。如果連續進行相同的動作,乘客會感到厭倦,所以定義某次動作的價值為(距上次該動作的時間)*ci,若為第一次進行該動作,價值為0。安排一種方案,使得總價值最大。
input
第一行,兩個數,n和k,如上所述;
第二行,k個正整數,表示k種動作的ci值。
output
僅一行,乙個整數,表示最大總價值。
sample input
5 22 2
sample output
hint
資料規模及約定
對於10%的測試資料,n<=20,k<=3
對於全部的測試資料,1<=n<=1000,1<=k<=300,0<=ci<=1000。
傳送門考慮一下對於某乙個ci,
假設最前面放置的位置為x,最後面放置的位置為y,貢獻是(y-x)*ci
假如說在中間乙個位置z放置,那麼貢獻為 (z
−x)∗
ci+(
y−z)
∗ci=
(y−x
)∗ci
也就是說貢獻是不會變化的。
那麼更大的ci肯定盡量分開放,而且不會放2個以上的位置(只可能<=原來的解)
那麼乙個很簡短的貪心就出來了。
#include
using
namespace
std;
int n,k,c[305];
bool cmp(int a,int b)
int main()
printf("%d\n",ans);
return
0;}
bzoj2697 特技飛行 貪心
神犇航空開展了一項載客特技飛行業務。每次飛行長n個單位時間,每個單位時間可以進行一項特技動作,可選的動作有k種,每種動作有乙個刺激程度ci。如果連續進行相同的動作,乘客會感到厭倦,所以定義某次動作的價值為 距上次該動作的時間 ci,若為第一次進行該動作,價值為0。安排一種方案,使得總價值最大。第一行...
BZOJ 2697 特技飛行(貪心)
題意 神犇航空開展了一項載客特技飛行業務。每次飛行長n個單位時間,每個單位時間可以進行一項特技動作,可選的動作有k種,每種動作有乙個刺激程度ci。如果連續進行相同的動作,乘客會感到厭倦,所以定義某次動作的價值為 距上次該動作的時間 ci,若為第一次進行該動作,價值為0。安排一種方案,使得總價值最大。...
BZOJ2697 特技飛行 貪心
bzoj2697 好水好水的貪心。容易發現每種特技只表演兩次,多表演沒有意義,而且差距越長收益越大 然後就可以貪,最大的放兩端,次大的往裡,然後是第三大.證明很簡單,假設將兩個特技時間交換,那麼會產生交換距離乘以 c 的差值的貢獻,顯然就不優 include include include incl...