这题的网络是这样建的。设一个源点s,s将于客户节点相连,连接方式为对考虑一个猪圈是第一次被光顾s将于这位顾客之间有一条流容量是该猪圈的猪数,若这个猪圈被人光顾过,则在这个顾客和前一个顾客间有一条无限流量的通道。依次下去完成顾客节点和s,顾客节点和顾客阶段间的网络。最后是顾客和汇点的网络,每个顾客和汇点t都有条通道,容量是顾客希望购买的数量。
  1. /*pku1149
  2. Name: PIGS
  3. Date: 27-07-08 16:42
  4. Description: 最大流
  5. */
  6. #include<stdio.h>
  7. #include<algorithm>
  8. #define pr printf
  9. #define MAX 10000000
  10. int pig[1002][103];
  11. int a[103][103],max;//容量
  12. int b[103][103];
  13. int m,n,min;
  14. #define SIZE 1000
  15. #define MAXN 103
  16. #define inf 1000000000
  17. int max_flow(int n,int mat[][MAXN],int source,int sink,int flow[][MAXN]){
  18. int pre[MAXN],que[MAXN],d[MAXN],p,q,t,i,j;
  19. if (source==sink) return inf;
  20. for (i=0;i<n;i++)
  21. for (j=0;j<n;flow[i][j++]=0);
  22. for (;;){
  23. for (i=0;i<n;pre[i++]=0);
  24. pre[t=source]=source+1,d[t]=inf;
  25. for (p=q=0;p<=q&&!pre[sink];t=que[p++])
  26. for (i=0;i<n;i++)
  27. if (!pre[i]&& (j=mat[t][i]-flow[t][i]))
  28. pre[que[q++]=i]=t+1,d[i]=d[t]<j?d[t]:j;
  29. else if (!pre[i]&& (j=flow[i][t]))
  30. pre[que[q++]=i]=-t-1,d[i]=d[t]<j?d[t]:j;
  31. if (!pre[sink]) break;
  32. for (i=sink;i!=source;)
  33. if (pre[i]>0)
  34. flow[pre[i]-1][i]+=d[sink],i=pre[i]-1;
  35. else
  36. flow[i][-pre[i]-1]-=d[sink],i=-pre[i]-1;
  37. }
  38. for (j=i=0;i<n;j+=flow[source][i++]);
  39. return j;
  40. }
  41. int main(){
  42. int i,j,A,B,key;
  43. scanf("%d%d",&m,&n);
  44. memset(a,inf,sizeof(a));//0表示没有流量
  45. for(i=1;i<=m;i++)
  46. {
  47. scanf("%d",&pig[i][0]);
  48. pig[i][102]=0;
  49. }
  50. for(i=1;i<=n;i++)
  51. {
  52. scanf("%d",&A);
  53. for(j=1;j<=A;j++)
  54. {
  55. scanf("%d",&key);
  56. if(pig[key][102]==0){a[0][i]+=pig[key][0];}//猪圈只和第一个顾客相连
  57. for(int k=pig[key][102];k>=1;k--){
  58. a[pig[key][k]][i]=MAX;
  59. }
  60. pig[key][++pig[key][102]]=i;
  61. }
  62. scanf("%d",&B);
  63. a[i][n+1]=B;
  64. }
  65. max=max_flow(n+2,a,0,n+1,b);//0是源点,n+1是汇点
  66. pr("%d/n",max);
  67. }
												

pku 1149 PIGS(最大流)相关推荐

  1. POJ 1149 PIGS 最大流建模

    点击打开链接 PIGS Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 14204   Accepted: 6305 Desc ...

  2. poj 1149 PIGS【最大流】

    建图:s向所有猪圈的第一个顾客连流量为这个猪圈里住的数量,然后对于之后每个来这个猪圈的顾客,由他前一个顾客向他连边权为无穷的边,然后每个顾客向t连流量为这个顾客购买上限的边.然后跑最大流 #inclu ...

  3. POJ1149 PIGS(最大流)

    题意:       有一个人,他有m个猪圈,每个猪圈里面有一定数量的猪,但是每个猪圈的门都是锁着的,他自己没有钥匙,只有顾客有钥匙,一天依次来了n个顾客,(记住是依次来的)他们每个人都有一些钥匙,和他 ...

  4. POJ 1149(最大流)

    这道题应该都能想到朴素的有n*m+个点的建图方案吧,呵呵,显然是不行的. 那么怎么办? 其实我们可以这样想:一个人能买到的猪有两个来源: ①来自自己第一次打开的猪圈 ②来自之前别人打开的猪圈 想到了这 ...

  5. POJ 1149 PIGS

    POJ_1149 这个题目搞得我比较纠结,具体的思想还是看看这篇博客吧. http://imlazy.ycool.com/post.2059102.html #include<stdio.h&g ...

  6. 网络流题集【夏天的风】

    [HDU] 1532Drainage Ditches(基础)    [最大流] 3549 Flow Problem(基础)    [最大流] 3572 Task Schedule    [最大流]任务 ...

  7. 【HDOJ图论题集】【转】

    1 =============================以下是最小生成树+并查集====================================== 2 [HDU] 3 1213 How ...

  8. 一系列图论问题[转]

    =============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...

  9. 【转载】图论 500题——主要为hdu/poj/zoj

    转自--http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...

  10. 图论练习题(存起来练)

    =============================以下是最小生成树+并查集======================================  [HDU]  1213 How Man ...

最新文章

  1. 10 个 Python 工程师,9 个不合格!
  2. 开发有新意的短视频,你就是荣耀王者
  3. 第四篇 群聚类非线性表的编程实验 第11章 应用图的遍历算法编程
  4. u盘如何linux双系统,怎么用U盘在Windows7下再安装ubuntu形成双系统?
  5. IOS 2D游戏开发框架 SpriteKit--续(创建敌对精灵)
  6. flutter 返回指定界面_Flutter页面路由导航及传参
  7. php新窗口打开链接,wordpress如何设置在新窗口打开链接
  8. 主线程中访问网络有限制?无法得到数据,必须另起线程
  9. OpenFOAM大涡模拟湍流模型之Smagorinsky模型代码详解
  10. host速度 mtk usb_MTK功能机MT2503平台USB充电电流设置
  11. Google Guice依赖注入框架使用
  12. Sklearn中的二分类模型可以进行多分类的原理
  13. 用js写一个功德木鱼
  14. redis单点故障问题
  15. 【第三方互联】4、分享至腾讯QQ、新浪微博(sina)
  16. 国内银行英文简称及全称
  17. 请介绍一下ivac 2L
  18. Fast Burst Images Denoising
  19. Interview之NLP:人工智能领域求职岗位—自然语言处理NLP算法工程师职位的简介、薪资介绍、知识结构之详细攻略
  20. 树莓派之禁用自动黑屏休眠模式

热门文章

  1. C# 基础,JOject JArray构造json对象
  2. 【管理心得之二十一】管得少就是管得好
  3. 我没钱 如何推广自己的网站
  4. Windows Mobile 6.1开发笔记
  5. LumaQQ.NET,基于LumaQQ的.NET开源QQ开发包
  6. 游戏开发之C++对C的扩展(C++基础)
  7. Hadoop和Spark三大核心组件介绍与对比
  8. git报错之fatal: protocol error: bad line length character: No This
  9. odoo 对 many2many one2many的操作
  10. 关于《停止学习框架》 - 讨论