題意: 有乙個烤肉店,有n個客人,每個客人點ni個ti時間花費的烤肉,每分鐘最多烤m個。客人有到和離開的時間限制,問是否可以滿足所有客人的需求。
(和 hdu3572很像,但是有兩點不同。1.3572中每個物品只能有乙個機器做,所以網路中物品到單位時間的容量是1.但是這個題不一樣,只要能流流不滿流多少都沒關係。2.這裡時間區間很長,要考慮離散化)
思路:源點 -》客人(容量花費時間)-》離散化後的時間(容量無窮)-》匯點(每個時間的容量上限)
所以跑一遍網路流如果是滿流就說明可以啦,經典的模型,sap玩家莽了過去。。。
**:
#include #include #include #include using namespace std;
const int maxn=1100;
int maze[maxn][maxn];
int gap[maxn],dis[maxn],pre[maxn],cur[maxn];
int sap(int start,int end,int nodenum)
aug=-1;
}goto loop;
}int mindis=nodenum-1;
for(int v=0; vdis[v])
if((--gap[dis[u]])==0)break;
gap[dis[u]=mindis+1]++;
u=pre[u];
}return maxflow;
}int n,m,a,b,c,d,tm[maxn][2],s[maxn];
int main()
for(int j=1;jif(sum==sap(0,cnt+n+1,cnt+n+2)) printf("yes\n");
else printf("no\n");
}}
hdu 2883 最大流 離散化 dinic
題意 給定n個顧客,第i號顧客在si到達,點了ni個羊肉串,每個羊肉串需要ti個時間烤好。顧客想要在ei得到,乙個烤爐只烤m串。問你是否能滿足所有顧客的要求?能的話輸出 yes 否則輸出 no 和3572類似,不過時間太長要用區間,讀入每個時間點排序去重得到tot時間點 tot 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個羊肉串可以被分開來考,乙個單獨的羊肉串也能分開...