coedvs 2744養魚喂妹紙(二分 貪心)

2021-08-01 11:13:48 字數 1599 閱讀 5160

題目描述 description

在某島國,大多數居民都是漁民,這個國家的所有城鎮都沿直線分布在海邊。漁民們捕獲大量的海魚,但就象世界上大多數的漁民一樣,他們並不喜歡吃魚,所以他們決定從**收養一些貧困家庭的女孩紙,讓她們來幫著吃魚,順便(和諧),國家規定每個城鎮收養的貧困妹紙數量必須相等,這樣才能建設和諧社會。

一條又長又直的公路貫穿整個海岸將所有的城鎮連線了起來,所以每個城鎮(除去第乙個和最後乙個)都直接和相鄰的兩個城鎮相連線。乙個妹紙一年要吃掉一噸魚(但是依然可以保持苗條),每個城鎮捕獲的魚既可以在本地吃也可以運往其它城市吃,在運輸過程中,每公里要上貢一噸魚作為過路費。

已知每個城鎮一年的捕魚產量,並假設運輸方案是最佳的,計算最多能收奍多少個妹紙。

輸入描述 input description

輸入檔案第一行包含乙個整數n,其中1≤n≤100,000,表示城鎮總數。

接下來的n行每行包含兩個整數a和b,其中1≤a≤1,000,000,000,0≤b≤1,000,000,000,分別表示城鎮的位置(座標)和該城鎮的捕魚產量,所有城鎮按其位置從小到大排序給出,注意問題一定存在正整數解。

輸出描述 output description

輸出檔案僅一行包含乙個整數表示每個城鎮最多能夠收養的妹紙數量。

樣例輸入 sample input

420 300

40 400

340 700

360 600

樣例輸出 sample output

415資料範圍及提示 data size & hint

1≤a≤1,000,000,000,0≤b≤1,000,000,000,1≤n≤100,000

思路:二分+貪心,check的時候用貪心來做,如果當前城鎮的魚數量不夠,那麼先那下乙個城鎮取,如果有多餘,則先運到下乙個城鎮(看是否有剩餘),最後看末尾城鎮的魚是否夠妹子吃。記得陣列開longlong。

(注意:題目給你的魚的數量也是以噸為單位的。。妹子也太能吃了)

**如下

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long int

using

namespace

std;

const

int n=1e6+5;

int b[n];

ll b[n];

int w[n];

int n;

bool check(ll x)

b[i]=b[i]-x;

if(b[i]<0)

b[i+1]=b[i+1]+b[i]-(w[i+1]-w[i]);

else

if(b[i]>0)

if(b[i]>(w[i+1]-w[i]))

}}int main()

ll l=0;

ll r=sum/n+1;

while(r-l>1)

printf("%lld",l);

return

0;}

百練 2744子串

描述 現在有一些由英文本元組成的大小寫敏感的字串,你的任務是找到乙個最長的字串x,使得對於已經給出的字串中的任意乙個y,x或者是y的子串,或者x中的字元反序之後得到的新字串是y的子串。輸入 輸入的第一行是乙個整數t 1 t 10 t表示測試資料的數目。對於每一組測試資料,第一行是乙個整數n 1 n ...

山理工OJ2744 矩陣

problem description x終於開始玩一些比較高大上的東西了,比如矩陣。給出兩個n n的矩陣a,b。他想知道矩陣a在順時針旋轉一定角度後是否會和矩陣b完全一樣。input 有多組輸入。每組輸入先輸入乙個整數n n 50 代表矩陣的大小。接下來的n行,每行有n個整數。代表矩陣a。再接下來...

CODEVS 2744 養魚喂妹紙

題目描述 description 在某島國,大多數居民都是漁民,這個國家的所有城鎮都沿直線分布在海邊。漁民們捕獲大量的海魚,但就象世界上大多數的漁民一樣,他們並不喜歡吃魚,所以他們決定從 收養一些貧困家庭的女孩紙,讓她們來幫著吃魚,順便 和諧 國家規定每個城鎮收養的貧困妹紙數量必須相等,這樣才能建設...