【网络流量最大流量】poj3281Dining
/*
EK算法版本号,哦,慢。。。。。见下文dinic版本号
-----------------------------------------
最大的问题是网络流量问题
----------------------------------------
建图:
关键:拆点
把每一个牛拆成两个点,牛作为一个点有流量限制,即每一头牛仅仅能的一份饭。
把牛拆开后,将边的权值赋值为1。
----------------------------------------
建好图后就能够EK算法最大流了
----------------------------------------
建图代码:
for(int i=1; i<=f; i++)源点和food相连
g[s][i] = 1;
for(int i=1; i<=d; i++)drink和汇点相连
g[i + 2*n + f][t] = 1;
for(int i=1; i<=n; i++)
{
cin>>a>>b;
for(int j=1; j<=a; j++)
{
cin>>food;
g[food][f + i] = 1;food和牛相连
}
g[f + i][f + i + n] = 1;牛拆点后也要相连
for(int j=1; j<=b; j++)
{
cin>>drink;
g[f + i + n][2*n + f + drink] = 1;牛和drink相连
}
}
---------------------------------
*/
#include <iostream>
#include <cstdio>
#include <queue>
#include <cstring>
#define INF 0x3f3f3f3f using namespace std; const int N = 500; int n,f,d;
int g[N][N];
int flow[N][N],a[N],p[N];
int s,t; int EK(int s, int t)
{
queue<int> q;
int f = 0;
for(;;)
{
memset(a,0,sizeof(a));
a[s] = INF;
q.push(s);
while(!q.empty())
{
int u = q.front();
q.pop();
for(int v=s; v<=t; v++)
{
if(!a[v] && g[u][v] > flow[u][v])
{
p[v] = u;
q.push(v);
a[v] = min(a[u],g[u][v] - flow[u][v]);
}
}
}
if(a[t] == 0)
break;
for(int u=t; u != s; u=p[u])
{
flow[p[u]][u] += a[t];
flow[u][p[u]] -= a[t];
}
f += a[t];
}
return f;
} void init()
{
int a,b,food,drink;
s = 0;
t = 2*n + f + d + 1;
memset(g,0,sizeof(g));
for(int i=1; i<=f; i++)
g[s][i] = 1;
for(int i=1; i<=d; i++)
g[i + 2*n + f][t] = 1;
for(int i=1; i<=n; i++)
{
cin>>a>>b;
for(int j=1; j<=a; j++)
{
cin>>food;
g[food][f + i] = 1;
}
g[f + i][f + i + n] = 1;
for(int j=1; j<=b; j++)
{
cin>>drink;
g[f + i + n][2*n + f + drink] = 1;
}
}
} int main()
{
//freopen("input.txt","r",stdin);
while(scanf("%d%d%d",&n,&f,&d) != EOF)
{
init();
printf("%d\n",EK(s, t));
}
return 0;
}
--------------------------------------------------------------------
战斗,不留情面;斗争。永不停止~~~~~~~~~~~~~~
【网络流量最大流量】poj3281Dining的更多相关文章
- Linux下网络流量实时监控工具
Linux下网络流量实时监控工具大全 在工作中发现,经常因为业务的原因,需要即时了解某台服务器网卡的流量,虽然公司也部署了cacti软件,但cacti是五分钟统计的,没有即时性,并且有时候打开监控页面 ...
- linux 网络数据收发网络流量监控
网卡流量 1.iftop命令 iftop可以用来监控网卡的实时流量(可以指定网段).反向解析IP.显示端口信息.TCP/IP连接等官网:http://www.ex-parrot.com/~pdw/if ...
- windows下使用C#获取特定进程网络流量
最近老板接了一个中船重工的项目,需要做一个有关海军软件系统的组件评估项目,项目中有一个子项目需要获取特定进程的各种系统参数,项目使用.NET平台.在获取特定进程各种系统参数时,其它诸如进程ID,进程名 ...
- 一个链接引发的血案---------服务器 IO及网络流量暴涨解决历程
在这里介绍一次因为更改网站地址而引发服务器IO读取速度,网络流入流出速度暴涨10倍的解决经历. 环境:Ubuntu + Nginx + php-cgi + Wordpress 事情是这样的,现在网站使 ...
- CentOS7 监控进程网络流量工具安装
服务器在做测试的时候,需要监控网络流量,用来了解在不同人数的时候服务器的网络使用量. 我们使用服务器环境是centos7,centos下通常使用iftop,或者nethogs来进行网络流量监控.这2个 ...
- 【读书笔记】iOS网络-测试与操纵网络流量
一,观测网络流量. 观测网络流量的行为叫做嗅探或数据包分析. 1,嗅探硬件. 从iOS模拟器捕获数据包不需要做特别的硬件或网络配置.如果需要捕获这些数据包,那么可以使用嗅探软件来监听回送设备或是用于连 ...
- [Android Pro] 网络流量安全测试工具Nogotofail
reference to : http://www.freebuf.com/tools/50324.html 从严重的HeartBleed漏洞到苹果的gotofail 漏洞,再到最近的SSL v3 P ...
- Linux网络流量实时监控ifstat iftop命令详解
ifstat 介绍 ifstat工具是个网络接口监测工具,比较简单看网络流量 实例 默认使用 #ifstat eth0 eth1 KB /s i ...
- linux网络流量实时监控工具之iptraf
这个工具还是很强大 linux网络流量实时监控工具之iptraf [我的Linux,让Linux更易用]IPTraf是一个网络监控工具,功能比nload更强大,可以监控所有的流量,IP流量,按协议分的 ...
随机推荐
- Android利用反射获取状态栏(StatusBar)高度
MainActivity如下: package cc.teststatusbarheight; import java.lang.reflect.Field; import android.os.Bu ...
- MyEclipse 2013 新功能介绍
http://pan.baidu.com/share/link?shareid=3310814720&uk=4012618212 下载地址 HTML5 Mobile Projects MyEc ...
- SQL Server Compact免安装部署
原文:SQL Server Compact免安装部署 情况 应用程序中的EF使用了SQL Server Compact,打包部署到客户机器上后提示数据库连接异常,信息类似”配置节“.”Provider ...
- Java反射机制小例子
package com.wjy.main; import java.io.Console; import java.lang.reflect.Constructor; import java.lang ...
- Get与Post的差别
Http定义了与server交互的不同方法,最主要的方法有4种,各自是GET,POST.PUT,DELETE. URL全称是资源描写叙述符.我们能够这样觉得:一个URL地址,它用于描写叙述一个网络上的 ...
- uvalive 2088 - Entropy(huffman编码)
题目连接:2088 - Entropy 题目大意:给出一个字符串, 包括A~Z和_, 现在要根据字符出现的频率为他们进行编码,要求编码后字节最小, 然后输出字符均为8字节表示时的总字节数, 以及最小的 ...
- css中padding中样式的顺序含义
4种可能的情况.举例说明: padding:10px; 四个内边距都是10px padding:5px 10px; 上下5px 左右10px padding:5px 10px 15px; 上5px 右 ...
- Tomcat中更改网站根目录和默认页的配置方法
1.tomcat原来的默认根目录是http://localhost:8080,如果想修改访问的根目录,可以这样: 找到tomcat的server.xml(在conf目录下),找到: <Host ...
- 直接插入排序、折半插入排序、Shell排序、冒泡排序,选择排序
一.直接插入排序 稳定,时间复杂度:最好O(n).最差O(n^2).平均O(n^2).空间复杂度O(1) void InsertSort(int L[], int n) { int i, j,key; ...
- Windows Phone开发(24):启动器与选择器之发送短信
原文:Windows Phone开发(24):启动器与选择器之发送短信 本节我们通过一个简单的发送短信示例来演示一下如果配合使用PhoneNumberChooserTask和SmsComposeTas ...