首先我的吐槽一下這題意描述。。出題人的語文水平肯定沒我這種語文大渣高
然後我們就直接複製某位不知名的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...