记录一个菜逼的成长。。

题目链接

二分图匹配,由于一个代表只能一桌,同一个代表团不能坐同一桌
所以代表团跟桌的流量设为1

#include <bits/stdc++.h>
using namespace std;
#define ALL(v) (v).begin(),(v).end()
#define cl(a,b) memset(a,b,sizeof(a))
#define clr clear()
#define pb push_back
#define mp make_pair
#define fi first
#define se second
typedef long long LL;
typedef pair<int,int> PII;
const int INF = 0x3f3f3f3f;
const int MAX_V = 1000 + 10;
struct edge{int to,cap,rev,flow;edge(){}edge(int _to,int _cap,int _rev,int _flow):to(_to),cap(_cap),rev(_rev),flow(_flow){}
};
vector<edge>G[MAX_V];
int level[MAX_V];
int iter[MAX_V];
void add(int from,int to,int cap,int flow = 0)
{G[from].push_back(edge(to,cap,G[to].size(),0));G[to].push_back(edge(from,0,G[from].size()-1,0));
}
void bfs(int s)
{memset(level,-1,sizeof(level));queue<int>que;level[s] = 0;que.push(s);while(!que.empty()){int f = que.front();que.pop();for( int i = 0; i < G[f].size(); i++ ){edge &e = G[f][i];if(e.cap > 0 && level[e.to] == -1){level[e.to] = level[f] + 1;que.push(e.to);}}}
}
int dfs(int v,int t,int f)
{if(v == t)return f;for( int &i = iter[v]; i < G[v].size(); i++ ){edge &e = G[v][i];if(e.cap > 0 && level[v] < level[e.to]){int d = dfs(e.to,t,min(e.cap,f));if(d > 0){e.cap -= d;e.flow += d;G[e.to][e.rev].cap += d;return d;}}}return 0;
}
int max_flow(int s,int t)
{int flow = 0;for(;;){bfs(s);if(level[t] == -1)return flow;memset(iter,0,sizeof(iter));int f;while((f = dfs(s,t,INF)) > 0)flow += f;}
}
int vis[MAX_V];
int main()
{int n,m;scanf("%d%d",&n,&m);int s = 0,t = n + m + 1;int sum = 0;for( int i = 1; i <= n; i++ ){int x;scanf("%d",&x);sum += x;add(s,i,x);}for( int i = 1; i <= n; i++ ){for( int j = 1; j <= m; j++ ){add(i,j+n,1);}}for( int i = 1; i <= m; i++ ){int x;scanf("%d",&x);add(i+n,t,x);}int ret = max_flow(s,t);if(ret < sum){puts("0");return 0;}puts("1");for( int i = 1; i <= n; i++ ){for( int j = 0; j < G[i].size(); j++ ){if(G[i][j].to > n && G[i][j].cap == 0){printf("%d ",G[i][j].to - n);}}puts("");}return 0;
}

【loj】#6004. 「网络流 24 题」圆桌聚餐(二分图匹配)相关推荐

  1. loj #6004. 「网络流 24 题」圆桌聚餐(最大流)

    #6004. 「网络流 24 题」圆桌聚餐 内存限制:256 MiB时间限制:5000 ms标准输入输出 题目类型:传统评测方式:Special Judge 上传者: 匿名 提交提交记录统计讨论测试数 ...

  2. LibreOJ 6004. 「网络流 24 题」圆桌聚餐 网络流版子题

    #6004. 「网络流 24 题」圆桌聚餐 内存限制:256 MiB时间限制:5000 ms标准输入输出 题目类型:传统评测方式:Special Judge 上传者: 匿名 提交提交记录统计讨论测试数 ...

  3. #6004. 「网络流 24 题」圆桌聚餐(重点整理两种网络流输出方式)

    P3254 圆桌问题 题意:就是让不同的单位的员工做不同的桌子,并输出方案. 建图很好想,就不多**了. 关键是路径输出: for(int i = 1; i <= m; i++){int len ...

  4. 「网络流 24 题」圆桌聚餐

    所有餐桌连源点容量为餐桌容量,所有单位连汇点容量为单位人数,题目要求同一单位不能再同一餐桌就餐,那么对于每个餐桌,与所有单位建边且容量为1即可,最后求一遍最大流. #include<stdio. ...

  5. loj #6226. 「网络流 24 题」骑士共存问题

    #6226. 「网络流 24 题」骑士共存问题 题目描述 在一个 n×n\text{n} \times \text{n}n×n 个方格的国际象棋棋盘上,马(骑士)可以攻击的棋盘方格如图所示.棋盘上某些 ...

  6. 【刷题】LOJ 6011 「网络流 24 题」运输问题

    题目描述 W 公司有 \(m\) 个仓库和 \(n\) 个零售商店.第 \(i\) 个仓库有 \(a_i\) 个单位的货物:第 \(j\) 个零售商店需要 \(b_j\) 个单位的货物.货物供需平衡, ...

  7. LOJ#6002. 「网络流 24 题」最小路径覆盖

    模板. 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 //#include<ti ...

  8. 【刷题】LOJ 6014 「网络流 24 题」最长 k 可重区间集

    题目描述 给定实直线 \(L\) 上 \(n\) 个开区间组成的集合 \(I\) ,和一个正整数 \(k\) ,试设计一个算法,从开区间集合 \(I\) 中选取出开区间集合 \(S \subseteq ...

  9. 【刷题】LOJ 6005 「网络流 24 题」最长递增子序列

    题目描述 给定正整数序列 \(x_1 \sim x_n\) ,以下递增子序列均为非严格递增. 计算其最长递增子序列的长度 \(s\) . 计算从给定的序列中最多可取出多少个长度为 \(s\) 的递增子 ...

最新文章

  1. 深度学习调参有哪些技巧?
  2. python协程池操作mysql_在python中使用aiomysql异步操作mysql
  3. 2-Tenor AF AFT400-实战-Lync Server 2010-集成-2012-01-19
  4. elasticsearch api中的Multi Get API操作
  5. 计算机英语四六级对调剂有影响吗,你知道四六级对于考研的影响程度吗?
  6. 【CVPR2019】完整论文列表二
  7. 详解4种微服务框架接入Istio方案
  8. myBatis的xml映射文件中传入list集合与数组做条件
  9. 大数据与BI的区别在哪
  10. 《linux核心应用命令速查》连载十二:top:显示进程
  11. Linux下通用打印系统CUPS使用教程
  12. readelf 解读
  13. 电子或者自动化同学以后做什么
  14. PDF编辑器(PDF Editor)中文版
  15. 行贿罪、受贿罪刑事辩护6大要点
  16. 健美运动员赛前脱水断碳_健美运动员在备赛期状态真的很差吗?
  17. 愿岁月流成花海,你我结伴而行
  18. python画椭圆-Python 如何绘制椭圆?
  19. linux nohup的使用及详解
  20. 拥抱400GE新引擎,跨越新基建的时代龙门

热门文章

  1. Windows Server操作系统安全加固
  2. 电脑桌面便签如何安装
  3. 10年后端开发程序员详解数据库缓存方案到底有多少名堂。丨Linux服务器开发丨后端开发丨中间件丨web服务器丨数据库缓存
  4. linux vim界面命令大全,vim命令大全
  5. 计算机英语性考,理工英语1单元自测7形考任务答案
  6. git安装 perl ubuntu_【Git】Linux Ubuntu——源码编译安装Git 2.x 版本
  7. 蓝桥杯单片机之DS1302时钟模块的使用
  8. 网页显示正在加载安全连接服务器,chrome内核的浏览器 打开网页巨慢 “正在建立安全连接” 解决方案...
  9. python画人物_用python画一朵玫瑰给你
  10. 2016年最新最精简的QQ群搜索排名优化教程步骤