NYOJ326_Dining(最大流)
原题地址:点击打开链接
思路:一开始当做二分图最大匹配问题来做,最后发现行不通。
最后找到思路该题可用最大流解决。。建立超级源点0,和汇点end=f+2*n+d+1;
建图:源点到食物f的流量为1,饮料到汇点的流量为1,重点是要将一只牛分成2个,每头牛与自己的流量为1,。即变为最大流问题。
示例加草图:
4 3 3 2 2 1 2 3 1 2 2 2 3 1 2 2 2 1 3 1 2 2 1 1 3 3
代码:
#include<stdio.h>
#include<string.h>
#include<vector>
using namespace std;
int used[410],pre[410],n,f,d,c[410][410],end;
bool dfs(int u)
{if(u==end)return true;int i;for(i=1;i<=end;i++){if(c[u][i]>0&&used[i]!=1){used[i]=1;pre[i]=u;if(dfs(i))return true;}}return false;
}
int max_Flow()
{int u,v,res=0;while(1){memset(used,0,sizeof(used));if(!dfs(0)){break;}res++;v=end;for(u=pre[end];v!=0;u=pre[u]){c[u][v]-=1;c[v][u]+=1;v=u;}}return res;
}
int main()
{int i,j,fCount,dCount,x;while(scanf("%d%d%d",&n,&f,&d)!=EOF){end=2*n+f+d+1;memset(c,0,sizeof(c));for(i=1;i<=f;i++)c[0][i]=1;for(i=2*n+f+1;i<end;i++)c[i][end]=1;for(i=f+1;i<=f+n;i++)c[i][i+n]=1;for(i=1;i<=n;i++){scanf("%d%d",&fCount,&dCount);for(j=0;j<fCount;j++){scanf("%d",&x);c[x][f+i]=1;}for(j=0;j<dCount;j++){scanf("%d",&x);c[f+n+i][f+2*n+x]=1;}}int res=max_Flow();printf("%d\n",res);}return 0;
}
NYOJ326_Dining(最大流)相关推荐
- stream流对象的理解及使用
我的理解:用stream流式处理数据,将数据用一个一个方法去 . (点,即调用) 得到新的数据结果,可以一步达成. 有多种方式生成 Stream Source: 从 Collection 和数组 Co ...
- 如何判断飞机的年限_技术流带你鉴定前风挡玻璃更换,不再使用日期判断!
这又是一篇关于前风挡玻璃鉴定的文章,我记得在二手车鉴定微信公众号里面已经发布好几篇这样的文章了,当然每篇文章的住重点不同,今天这一篇应该是完结篇,它们在一起能组成一套玻璃更换系列专题课程: 我们回 ...
- SpringCloud Alibaba微服务实战(五) - Sentinel实现限流熔断
什么是Sentinel? 请查看文章:SpringCloud Alibaba微服务实战(一) - 基础环境搭建 构建服务消费者cloud-sentinel进行服务调用 服务创建请查看文章:Spring ...
- 文件流处理流式处理大数据处理
20210315 https://www.yuque.com/7125messi/wydusr/wweetn 42-(重要重要重要)加速pandas(Modin和pandarallel) 重点 htt ...
- javaSE8的流库总结
前言 本篇博客对 java 8 的流库进行一个总结 1. 从迭代到流 在处理集合时,我们通常会迭代遍历它的元素,并在每个元素上执行某项操作,列如假设我们想统计某本书的所有长单词数(单词长度大于10): ...
- CUDA 7流简化并发
CUDA 7流简化并发 异构计算是指有效使用系统中的所有处理器,包括CPU和GPU.为此,应用程序必须在多个处理器上同时执行功能.CUDA应用程序通过在流(按顺序执行的命令序列)中,执行异步命令来管理 ...
- GPU编程和流式多处理器(二)
GPU编程和流式多处理器(二) 2. 整数支持 SM具有32位整数运算的完整补充. • 加法运算符的可选否定加法 • 乘法与乘法加法 • 整数除法 • 逻辑运算 • 条件码操作 • to/from浮点 ...
- GPU编程和流式多处理器
GPU编程和流式多处理器 流式多处理器(SM)是运行CUDA内核的GPU的一部分.本章重点介绍SM的指令集功能. 流式多处理器(SM)是运行我们的CUDA内核的GPU的一部分.每个SM包含以下内容. ...
- Cuda Stream流 分析
Cuda Stream流分析 Stream 一般来说,cuda c并行性表现在下面两个层面上: • Kernel level • Grid level Stream和event简介 Cuda stre ...
最新文章
- ERP_基于Oracle SOA的企业服务总线整合
- 阿里云服务器CentOS7版本yum方式安装mysql
- 学习响应式BootStrap来写融职教育网站,Bootsrtap第二天
- 信号为E时,如何让语音识别脱“网”而出?
- 管理科学の学生自学CS的【计划】与【心得】
- python版本控制git_实验一:Git代码版本管理
- SpringCloud-Config通过Java访问URL对敏感词加密解密
- python笔记记录神器 jupyter notebook
- java---抽奖小程序
- 102分布式电商项目 - JVM调优(理论篇)
- Synchronized和Reentrantlock的区别
- POWERBUILDER12.6开发实验室管理系统[LIS](一),迈瑞三分类血球仪 BC-20S\BC-30S接收、解析数据
- ①. SpringBoot整合PageOffice实现在线编辑Word和Excel
- 2021年系统集成项目管理工程师证书领取
- 为什么要学习人工智能,人工智能热招的岗位有哪些,工资和学历有哪些关系?
- java程序员学技术都会访问那些网站?
- Smoke testing,Sanity testing and Regression testing
- 2022好看的校园表白墙程序源码Ver2.0
- 1.android入门不能忽视的问题之出现“ClassNotFoundException: Didn't find class ...Activity on path: DexPathLis”错误
- 给公司代码分配销售组织
热门文章
- 使用函数指针来编写一个名叫sort的函数,它用于对一个任意类型的数组进行排序。
- 批量删除html网页,ie浏览器收藏夹网页批量删除方法
- php x20有啥用,vivo X20有什么新功能
- 高速设计学习-干货!高速串行Serdes均衡之FFE
- 家务计算机配置,笔记本电脑佳配置是什么样的
- 【已解决】surface 电池不好充电显示“未连接”,将充电的接口换个方向就解决了
- 天猫直通车的相关定义
- Hyperledger Fabric 网络环境的一点理解
- GDI+图像去污——四周去污
- Flutter系列(二)flutter项目打安装包