time limit: 5 sec memory limit: 259 mb
submit: 295 solved: 172
[submit][status][discuss]
a省有一條東西向的公路經常堵車,為解決這一問題,省**對此展開了調查。調查後得知,這條公路兩側有很多村落,每個村落裡都住著很多個信仰c教的教徒,每週日都會開著自家的車沿公路到b地去「膜拜」他們的教主,這便是堵車的原因。詳細調查顯示:這裡總共有n個村落,並且它們都在b地的東邊。編號為i的村落住有ri個信仰c教的教徒,距離b地的距離為ti(單位:公里)。為解決這一問題,a省**決定在這條公路下修建一條地下快速鐵路來緩解交通,並沿線修建若干個車站(b地會修建終點站,不算車站)。每名教徒都會先往b地方向開車(如果他所在村莊處恰好有車站就不必開車了),到最近的乙個快速鐵路車站時換乘(如果直接開到b地就不用換乘了),再通過快速鐵路到b地。但a**遇到乙個難題:修建多少個車站以及在哪修建車站。乙個修建車站的方案中,如果修建過多的車站則會花費過多的錢,但修建的車站少了或者修建的位置不對又會導致公路的擁堵。a**為了協調這兩方面,採用評分的方式來衡量乙個方案的好壞(分數越大方案越壞):每修建乙個車站會增加m的分數,在某一次「膜拜」中(只考慮去,不考慮返回),每導致1個教徒開車行駛1公里會增加1分。現請你設計乙個修建車站的方案,使得分數最小。請輸出這個最小的分數。
輸入的第一行包含兩個正整數n、m。之後n行每行兩個正整數ti、ri。
輸出乙個整數,表示最小的分數。
【樣例輸入1】
4 20
25 3
5 325 2
20 5
【樣例輸入2】
4 30
25 3
5 325 2
20 5
水一水斜率優化2333.
本題卡叉積2333,維護雙端佇列的時候盡量用一下斜率,因為我把叉積化成double都wa了2333
#include#define ll long longusing namespace std;
#define maxn 40005
struct node;
} bool operator <(const node &u)const;
while(hdq[++tl]=point; }}
int main()
sort(a+1,a+n+1),n++;
for(int i=1;i<=n;i++)
t[n+1]=1<<30;
solve();
printf("%lld\n",f[n]-m);
return 0;
}
Jzoj1968 設計鐵路
a省有一條東西向的公路經常堵車,為解決這一問題,省 對此展開了調查。調查後得知,這條公路兩側有很多村落,每個村落裡都住著很多個信仰c教的教徒,每週日都會開著自家的車沿公路到b地去 膜拜 他們的教主,這便是堵車的原因。詳細調查顯示 這裡總共有n個村落,並且它們都在b地的東邊。編號為i的村落住有ti個信...
鐵路訂票系統的簡單設計
本文可以應對海量併發業務請求的問題思想的解答 其實鐵路訂票系統面臨的技術難點無非就是春運期間可能發生的海量併發業務請求。這個加上乙個排隊系統就可以輕易解決的。本來我在 weibo 上閒扯兩句,這麼簡單的方案,本以為大家一看就明白的。沒想到還是許多人有疑問。好吧,寫篇 blog 來解釋一下。簡單說,我...
基於微控制器CAN匯流排的鐵路燈模擬監控設計
include include define uchar unsigned char 巨集定義 define uint unsigned int 巨集定義 sbit l0 p1 0 0和1指令顯示資訊引腳 sbit l1 p1 1 0和1指令顯示資訊引腳 sbit l2 p1 2 0和1指令顯示資訊...