藍橋村的居民都生活在一條公路的邊上,公路的長度為l,每戶家庭的位置都用這戶家庭到公路的起點的距離來計算,第i戶家庭距起點的距離為di。
每年,藍橋村都要舉行一次集會。今年,由於村里的人口太多,村委會決定要在4個地方舉行集會,其中3個位於公路中間,1個位最公路的終點。
已知每戶家庭都會向著遠離公路起點的方向去參加集會,參加集會的路程開銷為家庭內的人數ti與距離的乘積。
給定每戶家庭的位置di和人數ti,請為村委會尋找最好的集會舉辦地:p1, p2, p3, p4
(p1<=p2<=p3<=p4=l),使得村內所有人的路程開銷和最小。
【輸入格式】 輸入的第一行包含兩個整數n, l,分別表示藍橋村的家庭數和公路長度。 接下來n行,每行兩個整數di,
ti,分別表示第i戶家庭距離公路起點的距離和家庭中的人數。
【輸出格式】 輸出一行,包含乙個整數,表示村內所有人路程的開銷和。
【樣例輸入】
6 10
1 32 2
4 55 20
6 58 7
【樣例輸出】
18
【樣例說明】 在距起點2, 5, 8, 10這4個地方集會,6個家庭需要的走的距離分別為1, 0, 1, 0, 2,直接看**吧。。。0,總的路程開銷為1*3+0*2+1*5+0*20+2*5+0*7=18。
【資料規模與約定】 對於10%的評測資料,1<=n<=300。
對於30%的評測資料,1<=n<=2000,1<=l<=10000,0<=di<=l,di<=di+1,0<=ti<=20。
對於100%的評測資料,1<=n<=100000,1<=l<=1000000,0<=di<=l,di<=di+1,0<=ti<=1000000。
資源約定: 峰值記憶體消耗 < 512m cpu消耗 < 5000ms
請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入…」 的多餘內容。
所有**放在同乙個原始檔中,除錯通過後,拷貝提交該原始碼。
注意: main函式需要返回0 注意: 只使用ansi c/ansi c++ 標準,不要呼叫依賴於編譯環境或作業系統的特殊函式。 注意:
所有依賴的函式必須明確地在原始檔中 #include , 不能通過工程設定而省略常用標頭檔案。
提交時,注意選擇所期望的編譯器型別。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define mem(a,b) memset(a,b,sizeof(a))
#define inf 0x3f3f3f3f
#define mod 10000007
#define debug() puts("what the ****!!!")
#define n 10200
#define ll longlong
using
namespace
std;
int n,l;
int w[n][n];//起點和終點的距離
struct node
zz[n];
int solve(int st,int ed,int cur)//起點、終點、待劃分區域
return m;
}int main()
居民集會 分治法)
藍橋村的居民都生活在一條公路的邊上,公路的長度為l,每戶家庭的位置都用這戶家庭到公路的起點的距離來計算,第i戶家庭距起點的距離為di。每年,藍橋村都要舉行一次集會。今年,由於村里的人口太多,村委會決定要在4個地方舉行集會,其中3個位於公路中間,1個位最公路的終點。已知每戶家庭都會向著遠離公路起點的方...
藍橋杯 15決賽 C6 居民集會 dfs
輸入格式 輸入的第一行包含兩個整數n,l,分別表示藍橋村的家庭數和公路長度。接下來n行,每行兩個整數di,ti,分別表示第i戶家庭距離公路起點的距離和家庭中的人數。輸出格式 輸出一行,包含乙個整數,表示村內所有人路程的開銷和。樣例輸入 6 10 1 32 2 4 55 20 6 58 7 樣例輸出 ...
2015藍橋杯決賽
五月二十八號,坐上了開往北京的火車。第一次到北京參加全國性的比賽,第六屆藍橋杯決賽,心裡面還是很興奮的,同時也有一點點緊張,還是希望自己能拿乙個比較好的成績。提前一天到,大家看了看考場,比賽地點在北大計算中心,30號下午一點開始了正式的比賽,比賽時間四個小時。比賽題目型別和初賽差不多,有結果填空,填...