codevs 1507 酒廠選址

2021-09-22 08:00:49 字數 1118 閱讀 6225

題目描述

abstinence(戒酒)島的居民們酷愛一種無酒精啤酒。以前這種啤酒都是從波蘭進口,但今年居民們想建乙個自己的啤酒廠。島上所有的城市都坐落在海邊,並且由一條沿海岸線的環島高速路連線。酒廠的投資者收集了關於啤酒需求量的資訊,即每天各城市消費的啤酒桶數。另外還知道相鄰城市之間的距離。每桶啤酒每英里的運費是1元。日運費是將所需要的啤酒從酒廠運到所有城市所必需的運費之和。日運費的多少和酒廠的選址有關。投資者想找到乙個合適的城市來修建酒廠,以使得日運費最小。

請設計乙個程式,輸入城市的數目、相鄰兩城市間的距離以及每個城市消費的啤酒桶數,輸出最小的日運費。

輸入描述

第一行是乙個整數n(5 <= n <= 10000) ,表示城市的數目。 城市沿高速路編號,使得相鄰的城市的編號也相鄰(城市1和n也被認為是相鄰)。 以下的n行,每行有兩個非負整數。第i+1行的數 zi、di分別是城市i每日的啤酒消費量(桶)和從城市i沿高速路到下乙個城市的距離(英里)。高速路的總長不會超過65535 英里。每座城市的日消費量不會超過255桶。

輸出描述

乙個整數,表示所需的最小日運費(元)。

樣例輸入

61 2

2 31 2

5 21 10

2 3樣例輸出

41分析

參考了一位大神的做法,直接暴力。

#includeusing namespace std;

#define n 20000 + 10

#define inf 0x3f3f3f3f3f3f//足夠大的數

#define ll long long

int n;

ll a[n],b[n],c[n];

ll sum;

ll ans = inf;

int main()

/*外層迴圈為酒廠位址,內層迴圈得到日運費

因為複製了乙份,變為了線性,所以只需要往後推,同時控制長度*/

for(int i = 0; i < n; i++)

} for(int i = 0; i < n; i++)

ans = min(ans,c[i]);

cout << ans << endl;

return 0;

}

Codevs 1507 酒廠選址

時間限制 1 s 空間限制 128000 kb 題目等級 gold 題解 檢視執行結果 abstinence 戒酒 島的居民們酷愛一種無酒精啤酒。以前這種啤酒都是從波蘭進口,但今年居民們想建乙個自己的啤酒廠。島上所有的城市都坐落在海邊,並且由一條沿海岸線的環島高速路連線。酒廠的投資者收集了關於啤酒需...

codevs1507 酒廠選址

題目 一開始想到了字首和優化,發現是n 2,看資料範圍沒敢打 於是去搜題解 結果發現有人就是這麼過的23333 於是 include include include using namespace std const long long maxn 200000 50 long long dis1 m...

codevs 1507 酒廠選址

時間限制 1 s 空間限制 128000 kb 題目等級 gold abstinence 戒酒 島的居民們酷愛一種無酒精啤酒。以前這種啤酒都是從波蘭進口,但今年居民們想建乙個自己的啤酒廠。島上所有的城市都坐落在海邊,並且由一條沿海岸線的環島高速路連線。酒廠的投資者收集了關於啤酒需求量的資訊,即每天各...