1740 圓桌問題 最大流

2021-08-21 15:14:07 字數 1071 閱讀 5909

題意:

假設有來自n 個不同單位的代表參加一次國際會議。每個單位的代表數分別為 ri,i=1,2,...,n 。會議餐廳共有m張餐桌,每張餐桌可容納ci(i=1,2, ,m) 個代表就餐。 為了使代表們充分交流,希望從同乙個單位來的代表不在同乙個餐桌就餐。試設計乙個演算法, 給出滿足要求的代表就餐方案。 程式設計任務: 對於給定的代表數和餐桌數以及餐桌容量,程式設計計算滿足要求的代表就餐方案。

思路:隨便建圖跑個最大流就可以了,水題

#include #include #include #include #include #include #include using namespace std;

const int maxn = 1000;

const int inf = 0x3f3f3f3f;

struct edge ;

struct dinic

void addedge(int from, int to, int cap) );

edges.push_back(edge);

int m = edges.size();

g[from].push_back(m-2);

g[to].push_back(m-1);

}bool bfs() }}

return vis[t];

}int dfs(int x, int a)

}return flow;

}int maxflow(int s, int t)

return flow;

}}ac;

int r[maxn], c[maxn];

vectorg[maxn];

int main()

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

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

int ans = ac.maxflow(s, t);

if (sum == ans)

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

}else

return 0;

}

LuoguP3254 圓桌問題 最大流

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

LibreOJ 6004 圓桌聚餐 最大流

題解 天啊,這道最大流真是水的一批 只需要每張桌子向每個單位建一條容量為1的邊,源點向桌子建邊,容量為桌子能坐的人數 單位向匯點建邊,容量為單位人數即可,然後根據單位與桌子的連邊值是否為一來了解每個單位配對的桌子即可 如下 include include include include includ...

HDU 4841 圓桌問題

acm模版 這個題簡單的來就是暴力列舉約瑟夫環,當然,太暴力也不好,適當的用資料結構優化一下也是有必要的,這裡用向量維護,成功水過。include include include include include using namespace std const int maxn 4e4 const...