L3 017 森森快遞(線段樹 貪心)

2021-09-12 02:40:25 字數 1060 閱讀 5592

解題思路:一開始感覺是圖論最大流題,但是有些細節感覺沒法處理。後來再仔細一想,可以用線段樹+貪心來做。但是又有點想偏了,想成優先區間最小的部分,其實應該是優先右邊界最小的

#include#define n 100001

using namespace std;

typedef long long ll;

struct node

s[n*3];

struct node2

p[n];

int x[n];

void build(int l,int r,int rt)

build(l,(l+r)/2,2*rt);

build((l+r)/2+1,r,2*rt+1);

s[rt].w=min(s[2*rt].w,s[2*rt+1].w);

}int query(int l,int r,int rt)

int mid=(s[rt].l+s[rt].r)/2;

if(s[rt].c>0)

if(r<=mid)

return query(l,r,2*rt);

else

if(l>mid)

return query(l,r,2*rt+1);

else }

void update(int l,int r,int rt,int c)

if(s[rt].c>0)

int mid=(s[rt].l+s[rt].r)/2;

if(r<=mid)

update(l,r,2*rt,c);

else

if(l>mid)

update(l,r,2*rt+1,c);

else

s[rt].w=min(s[2*rt].w,s[2*rt+1].w);

}bool cmp(node2 a,node2 b)

sort(p,p+q,cmp);

ll ans=0,tp;

for(int i=0;iprintf("%lld\n",ans);

return 0;

}

L3 017 森森快遞 (30 分

森森開了一家快遞公司,叫森森快遞。因為公司剛剛開張,所以業務路線很簡單,可以認為是一條直線上的n個城市,這些城市從左到右依次從0到 n 1 編號。由於道路限制,第i號城市 i 0,n 2 與第 i 1 號城市中間往返的運輸貨物重量在同一時刻不能超過c i 公斤。公司開張後很快接到了q張訂單,其中j張...