Cogs 729 網路流24題 圓桌聚餐

2022-02-13 04:14:46 字數 1744 閱讀 2628

[網路流24題] 圓桌聚餐

★★ 輸入檔案:roundtable.in 輸出檔案:roundtable.out 評測外掛程式

時間限制:1 s 記憶體限制:128 mb

«問題描述:

假設有來自m 個不同單位的代表參加一次國際會議。每個單位的代表數分別為

ri(i=1,2,3…m), 。會議餐廳共有n張餐桌,每張餐桌可容納c i(i=1,2…n) 個代表就餐。

為了使代表們充分交流,希望從同乙個單位來的代表不在同乙個餐桌就餐。試設計乙個演算法,

給出滿足要求的代表就餐方案。

«程式設計任務:

對於給定的代表數和餐桌數以及餐桌容量,程式設計計算滿足要求的代表就餐方案。

«資料輸入:

由檔案roundtable.in提供輸入資料。檔案第1行有2 個正整數m和n,m表示單位數,n表

示餐桌數,1<=m<=150, 1<=n<=270。檔案第2 行有m個正整數,分別表示每個單位的代表

數。檔案第3 行有n個正整數,分別表示每個餐桌的容量。

«結果輸出:

程式執行結束時,將代表就餐方案輸出到檔案roundtable.out中。如果問題有解,在檔案第

1 行輸出1,否則輸出0。接下來的m行給出每個單位代表的就餐桌號。如果有多個滿足要

求的方案,只要輸出1 個方案。

輸入檔案示例 輸出檔案示例

roundtable.in

4 5

4 5 3 5

3 5 2 6 4 roundtable.out

1 1 2 4 5

1 2 3 4 5

2 4 5

1 2 3 4 5

/*

二分圖多重匹配問題.

最大流.

和前幾題做法相似.

建模的時候

從源點到貨庫建一條流量為庫存量的邊.

從貨庫與商店間建一條流量為1的邊.

從商店到匯點建一條流量為所需量的邊.

dinic即可.

*/#include

#include

#include

#include

#define maxn 10001

using

namespace

std;

struct datae[maxn*2];

int n,m,max1=1e9,ans,total,cut=1,dis[maxn],head[maxn],next[maxn];

bool in[maxn];

inline

int read()

while(ch>='0'&&ch<='9') x=x*10+ch-48,ch=getchar();

return x*f;

}void add(int u,int v,int x)

bool bfs()}}

return dis[n+m+1]!=-1;

}int dfs(int u,int y)

}if(!rest) dis[u]=-1;

return rest;

}void print()

printf("\n");

}}void dinic(int s,int t)

else

printf("0");

return ;

}int main()

COGS461 網路流24題 餐巾

問題描述 乙個餐廳在相繼的n天裡,第i天需要ri塊餐巾 i l,2,n 餐廳可以從三種途徑獲得餐巾。1 購買新的餐巾,每塊需p分 2 把用過的餐巾送到快洗部,洗一塊需m天,費用需f分 f 3 把餐巾送到慢洗部,洗一塊需n天 n m 費用需s分 s在每天結束時,餐廳必須決定多少塊用過的餐巾送到快洗部,...

loj6004 網路流 24 題 圓桌聚餐

題目描述 假設有來自 n n n 個不同單位的代表參加一次國際會議。每個單位的代表數分別為 ri r i r i 會議餐廳共有 m m m 張餐桌,每張餐桌可容納 ci c i c i 個代表就餐。為了使代表們充分交流,希望從同乙個單位來的代表不在同乙個餐桌就餐。試設計乙個演算法,給出滿足要求的代表...

LOJ 6004 網路流 24 題 圓桌聚餐

題意 假設有來自 m mm 個不同單位的代表參加一次國際會議。每個單位的代表數分別為 r ir i ri 會議餐廳共有 n nn 張餐桌,每張餐桌可容納 c ic i ci 個代表就餐。為了使代表們充分交流,希望從同乙個單位來的代表不在同乙個餐桌就餐。試設計乙個演算法,給出滿足要求的代表就餐方案。連...