Bzoj 1280: Emmy卖猪pigs
1280: Emmy卖猪pigs
Time Limit: 1 Sec Memory Limit: 162 MB
Submit: 279 Solved: 182
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
3 1 10
2 1 2 2
2 1 3 3
1 2 6
Sample Output
HINT
1 ≤ M ≤ 1000
1 ≤ N ≤ 100
【网络流建模汇总T1】






/**************************************************************
Problem: 1280
User: gryz2016
Language: C++
Result: Accepted
Time:0 ms
Memory:2472 kb
****************************************************************/ //S向第一个打开某猪圈的人连边,容量为这个猪圈里猪的数量
//后边的打开这个猪圈的人从第一个打开这个猪圈的人那里连边过来,容量为INF
//因为猪圈里的猪是可以随意调动的嘛
//然后更新打开这个猪圈的人
//不更新不是不对,但是会慢
//然后这个人向汇点连边,容量为他要买的猪的数量 //画个图会很清晰。 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std; int n,m;
int head[],from[],num_edge;
int last[];
int w[];
int dep[];
struct Edge
{
int v,flow,nxt;
}edge[]; inline int read()
{
char c=getchar();int num=,f=;
for(;!isdigit(c);c=getchar())
f=c=='-'?-:f;
for(;isdigit(c);c=getchar())
num=num*+c-'';
return num*f;
} inline void add_edge(int u,int v,int w)
{
edge[++num_edge].v=v;
edge[num_edge].flow=w;
edge[num_edge].nxt=head[u];
head[u]=num_edge;
} inline bool bfs()
{
for(int i=;i<=n;++i)
from[i]=head[i],dep[i]=;
queue<int> que;
int now,v;
dep[]=;
que.push();
while(!que.empty())
{
now=que.front(),que.pop();
for(int i=head[now];i;i=edge[i].nxt)
{
v=edge[i].v;
if(!dep[v]&&edge[i].flow)
{
dep[v]=dep[now]+;
if(v==n)
return ;
que.push(v);
}
}
}
return ;
} int dfs(int now,int flow)
{
if(now==n||!flow)
return flow;
int outflow=,v,tmp;
for(int &i=from[now];i;i=edge[i].nxt)
{
v=edge[i].v;
if(dep[v]!=dep[now]+)
continue;
tmp=dfs(v,min(flow,edge[i].flow));
flow-=tmp;
outflow+=tmp;
edge[i].flow-=tmp;
edge[i^].flow+=tmp;
if(!flow)
return outflow;
}
dep[now]=;
return outflow;
} int main()
{
num_edge=;
m=read(),n=read();
for(int i=;i<=m;++i)
w[i]=read();
int a,b;
for(int i=;i<=n;++i)
{
a=read();
while(a--)
{
b=read();
if(!last[b]) //这个猪圈是第一次被打开
add_edge(,i,w[b]),
add_edge(i,,);
else
add_edge(last[b],i,0x7fffffff), //向上一个打开这个猪圈的人连边
add_edge(i,last[b],);
last[b]=i;
}
b=read();
add_edge(i,n+,b);
add_edge(n+,i,);
}
++n;
int ans=;
while(bfs())
ans+=dfs(,0x7fffffff);
printf("%d",ans);
return ;
}
Bzoj 1280: Emmy卖猪pigs的更多相关文章
- BZOJ1280: Emmy卖猪pigs
BZOJ1280: Emmy卖猪pigs https://lydsy.com/JudgeOnline/problem.php?id=1280 分析: 这题感觉还好,因为是有时间顺序,所以拆点做最大流即 ...
- 【BZOJ1280】Emmy卖猪pigs 最大流
[BZOJ1280]Emmy卖猪pigs Description Emmy在一个养猪场工作.这个养猪场有M个锁着的猪圈,但Emmy并没有钥匙.顾客会到养猪场来买猪,一个接着一个.每一位顾客都会有一些猪 ...
- [BZOJ1280][POJ1149]Emmy卖猪pigs
[BZOJ1280][POJ1149]Emmy卖猪pigs 试题描述 Emmy在一个养猪场工作.这个养猪场有 \(M\) 个锁着的猪圈,但Emmy并没有钥匙.顾客会到养猪场来买猪,一个接着一个.每一位 ...
- BZOJ1280 Emmy卖猪pigs 网络流
正解:网络流 解题报告: 传送门! 我网络流的基础题都还麻油做完就来做这个了,,,wsl,,, 首先想下最基础的构图方法 不难想到把猪圈和顾客分别当做节点,然后新建一个源点和汇点 然后考虑怎么连边,首 ...
- Pku1149 PIGS 卖猪
题目链接:ヾ(≧∇≦*)ゝ Description Emmy在一个养猪场工作.这个养猪场有M个锁着的猪圈,但Emmy并没有钥匙. 顾客会到养猪场来买猪,一个接着一个.每一位顾客都会有一些猪圈的钥匙,他 ...
- 洛谷 P2483 BZOJ 1975 [SDOI2010]魔法猪学院
题目描述 iPig在假期来到了传说中的魔法猪学院,开始为期两个月的魔法猪训练.经过了一周理论知识和一周基本魔法的学习之后,iPig对猪世界的世界本原有了很多的了解:众所周知,世界是由元素构成的:元素与 ...
- bzoj 1975 [Sdoi2010]魔法猪学院(k短路)
题目描述 iPig在假期来到了传说中的魔法猪学院,开始为期两个月的魔法猪训练.经过了一周理论知识和一周基本魔法的学习之后,iPig对猪世界的世界本原有了很多的了解:众所周知,世界是由元素构成的:元素与 ...
- Bzoj 1975: [Sdoi2010]魔法猪学院 dijkstra,堆,A*,K短路
1975: [Sdoi2010]魔法猪学院 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1357 Solved: 446[Submit][Statu ...
- BZOJ 1951: [Sdoi2010]古代猪文( 数论 )
显然答案是G^∑C(d,N)(d|N).O(N^0.5)枚举N的约数.取模的数999911659是质数, 考虑欧拉定理a^phi(p)=1(mod p)(a与p互质), 那么a^t mod p = a ...
随机推荐
- Shiro身份认证、盐加密
目的: Shiro认证 盐加密工具类 Shiro认证 1.导入pom依赖 <dependency> <groupId>org.apache.shiro</groupId& ...
- 最简容器化动手小实践——再战flappybird
<Flappy Bird>是一名越南开发者所开发的游戏,这款游戏的主要内容是帮助一只小鸟穿越水管的层层阻碍,玩家所需要的只是点击屏幕从而调整小鸟的高度.而令这款游戏与众不同的是,这款游戏的 ...
- Liar CodeForces - 822E (dp,后缀数组)
大意: 给定串$s,t$, 给定整数$x$, 求判断$t$是否能划分为至多$x$段, 使这些段在$s$中按顺序,不交叉的出现. 设$dp_{i,j}$表示$s$匹配到$i$位, 划分了$j$段, 匹配 ...
- MySQL 体系结构及存储引擎
MySQL 原理篇 MySQL 索引机制 MySQL 体系结构及存储引擎 MySQL 语句执行过程详解 MySQL 执行计划详解 MySQL InnoDB 缓冲池 MySQL InnoDB 事务 My ...
- LINUX CGROUP总结
简介: Linux CGroup全称Linux Control Group, 是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU.内存.磁盘输入输出等).这个项目最早是由Go ...
- Action请求后台出现Response already commited异常解决方法
在编写导出功能使用action请求,在处理导出异常时期望跳转异常页,Controller中的方法返回类型String的url 在处理完逻辑导出文件后后台控制台出现 WARN [org.springf ...
- 【转载】如何自己DIY组装一台台式电脑
针对很多懂计算机的人员来说,有时候都希望自己DIY组装一台台式机,来达到自己的个性化要求以及省钱.其实自己DIY组装一台电脑也很简单,将相应的CPU处理器.主板.内存条.硬盘.固态硬盘.电脑机箱.屏幕 ...
- python渗透库大集合
l Scapy:一款强大的交互式数据报分析工具,可用作发送.嗅探.解析和伪造网络数据包. l pypcap.Pcapy和pylibpcap:配合libpcap一起使用的数据包捕获模块 l libdne ...
- memoryCache的使用
1 借鉴这篇文章 https://www.cnblogs.com/zuowj/p/8440902.html using System; using System.Collections.Generic ...
- SMARTY的简单实例写法
访问页面main.php(后台页面) <?php include("../init.inc.php"); //引入入口文件 include("../DBDA.php ...