題意:給定n個顧客,第i號顧客在si到達,點了ni個羊肉串,每個羊肉串需要ti個時間烤好。顧客想要在ei得到,乙個烤爐只烤m串。問你是否能滿足所有顧客的要求?能的話輸出「yes」,否則輸出「no」。
和3572類似,不過時間太長要用區間,讀入每個時間點排序去重得到tot時間點 tot-1區間
建圖:源點到顧客任務(sp, i, ni * ti)
時間區間到匯點(j, tp, (t[j] - t[j-1]) * m)
顧客任務包含時間區間(i, j, inf)
最大流 == 總時間?
#include #include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f
//#define ll long long
#define maxn 2005
using namespace std;
const int inf = 0x3f3f3f3f;
const int maxn = 2005;
int n, m;//點數、邊數
int sp, tp;//原點、匯點
struct node mp[maxn];
int pre[maxn], dis[maxn], cur[maxn];//cur為當前弧優化,dis儲存分層圖中每個點的層數(即到原點的最短距離),pre建鄰接表
int cnt = 0;
void init()
void add(int u, int v, int w)
bool bfs() }}
return dis[tp] != -1;
}int dfs(int u,int cap)
}if(!res)
dis[u] = -1;
return res;
}int dinic()
return ans;
}struct node1 pi[205];
int tim[410];
int main()
sort(tim, tim + tot);
tot = unique(tim, tim + tot) - tim;
sp = 0, tp = n + tot + 1;
for(int i = 1; i <= n; i++)
for(int i = 1; i < tot; i++) }}
int ans = dinic();
if(ans >= maxflow)
else
}return 0;
}
hdu 2883 網路流 離散化
題意 有乙個烤肉店,有n個客人,每個客人點ni個ti時間花費的烤肉,每分鐘最多烤m個。客人有到和離開的時間限制,問是否可以滿足所有客人的需求。和 hdu3572很像,但是有兩點不同。1.3572中每個物品只能有乙個機器做,所以網路中物品到單位時間的容量是1.但是這個題不一樣,只要能流流不滿流多少都沒...
hdu2883 kebab (最大流 離散化)
題目大意 你在經營乙個烤肉店,給你n個客人,每個客人都要求有ni的肉串,並且不要客人要求的肉串的一串烤製時間是不一樣的 為ti 客人將在si到,並且在ei的時候走。你有乙個烤肉機,每天可以烤製m個串,並且每個串是可以分不連續的幾天烤製。題解 從資料規模和模型很容易看出來是一道網路流的題目,hdu上還...
HDU 2883 kebab 離散化 最大流
hdu 2883 kebab 離散化 最大流 題意 給定n個顧客,第i號顧客在si到達,點了ni個羊肉串,每個羊肉串需要ti個時間烤好。顧客想要在ei得到,乙個烤爐只烤m串。問你是否能滿足所有顧客的要求?能的話輸出 yes 否則輸出 no 注意 這ni個羊肉串可以被分開來考,乙個單獨的羊肉串也能分開...