神犇航空開展了一項載客特技飛行業務。每次飛行長 \(n\) 個單位時間,每個單位時間可以進行一項特技動作,可選的動作有 \(k\) 種,每種動作有乙個刺激程度 \(c_i\)。如果連續進行相同的動作,乘客會感到厭倦,所以定義某次動作的價值為(距上次該動作的時間) \(\times c_i\),若為第一次進行該動作,價值為 \(0\)。安排一種方案,使得總價值最大。
1.每個動作最多兩次
證明:假設動作\(c\)在\(i,j,k\)三個時刻進行,那麼收益是\((k-j)\times c + (j-i)\times c = (k-i)\times c\),所以中間時刻\(j\)形同虛設。
2.每次安排在兩頭,這樣可以最大限度的使時間間隔最大
證明:易得
3.應該從大到小開始安排
證明:易得
#include#include#include#include#include#include#include#include#include#include#include#define n 1010
using namespace std;
int m,n,c[n];
int ans=0;
long long read()
while(ch>='0'&&ch<='9')
return x*h;
}int main()
cout
}
洛谷 P3918 國家集訓隊 特技飛行
神犇航空開展了一項載客特技飛行業務。每次飛行長n個單位時間,每個單位時間可以進行一項特技動作,可選的動作有k種,每種動作有乙個刺激程度ci。如果連續進行相同的動作,乘客會感到厭倦,所以定義某次動作的價值為 距上次該動作的時間 ci,若為第一次進行該動作,價值為0。安排一種方案,使得總價值最大。貪心動...
P1505 國家集訓隊 旅遊
題目鏈結 這道題其實還是比較好想的,同樣是邊權問題。我們需要維護最大值,最小值,和。最坑的地方就是路徑上的所有數變相反數,其實這個就是把區間和 1,區間最大 1,區間最小 1,最後pushdown的時候將取反標記 1,接下來一系列都是常規操作。而這裡還要記住,單點修改時也要下傳lazy標記。而我在跳...
P1505 國家集訓隊 旅遊
ray 樂忠於旅遊,這次他來到了t 城。t 城是乙個水上城市,一共有 n 個景點,有些景點之間會用一座橋連線。為了方便遊客到達每個景點但又為了節約成本,t 城的任意兩個景點之間有且只有一條路徑。換句話說,t 城中只有n 1 座橋。ray 發現,有些橋上可以看到美麗的景色,讓人心情愉悅,但有些橋狹窄泥...