2696 航班安排 費用流

2021-07-10 10:10:23 字數 1088 閱讀 5114

首先我的吐槽一下這題意描述。。出題人的語文水平肯定沒我這種語文大渣高

然後我們就直接複製某位不知名的fqk神犇的題解

說的這麼詳細我都不忍心不複製了qaq

建完圖直接跑最小費用最大流

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define n 100022

#define m 202

#define mx 1e9

using namespace std;

int sc()

while(c>='0'&&c<='9')i=i*10+c-'0',c=getchar();

return i*f;

}int dis[n],q[n],from[n],wh[n];

int t[m][m],f[m][m],a[m],b[m],s[m],tt[m],cc[m];

int head[n],nxt[n],lst[n],c[n],v[n];

int tot=1,n,m,k,fin,s,t,ans;

void insert(int

x,int

y,int a,int b)

bool bfs()

return dis[t]!=-1e9;

}void mcf()

int main()

for(int i=1;i<=m;i++)

for(int j=1;j<=m;j++)

if(tt[i]+t[b[i]][a[j]]<=s[j])

insert(i+m,j,1,-f[b[i]][a[j]]);

s++;insert(s,s-1,k,0);

while(bfs())mcf();

cout

0;}

2696 航班安排 費用流

先讓我重新說一下題意qwq。有n 個機場,機場兩兩之間需要的最短時間是fi j,花費的費用是乙個固定值ci j,有 m 個請求,在 s時刻從 a 機場起飛,在恰好 t時刻到達 b 機場,可以淨獲利cc 問最大獲利。也就是說對於路線i j 你可以為了恰好到達而多飛一會兒。資料保證給出的請求是合法的,即...

BZOJ 2696 航班安排 費用流

題目大意 k架飛機,n個機場,以0.n 1編號,其中0號為基地機場,每天0時刻起飛機從該機場起飛,並不晚於t時刻回到該機場。m個包機請求,每個請求為在s時刻從a機場起飛,在恰好t時刻到達b機場,可以淨獲利c。機場之間來往有花費。求最大收益。將每乙個請求拆成兩個點,在兩個點之間連一條費用為負的完成請求...

國家集訓隊 航班安排 最小費用最大流

對請求拆點建圖 對於乙個請求,如果 0 時刻可以從 0 機場到這裡,那麼 s 向它連邊,流量 infty 費用為 w 結束時間飛回 0 小於時間限制,則向著 t 連邊,費用為 w 兩兩枚舉所有請求,如果來得及就同理連邊 最後別忘了限制一下總流量 跑最小費用最大流即可 include using na...