当前位置: 首页 > news >正文

九龙坡网站建设多少钱月嫂免费政府培训中心

九龙坡网站建设多少钱,月嫂免费政府培训中心,做决定的网站,企业注册登记流程题目链接:http://poj.org/problem?id3281 PS:刷够网络流了,先这样吧,之后再刷,慢慢补。 题意:有F种食物,D种饮料,N头奶牛,只能吃某种食物和饮料(而且只能吃特定的一份),一种食物被一头牛吃了之后,其余牛就不能吃了 第…

题目链接:http://poj.org/problem?id=3281

PS:刷够网络流了,先这样吧,之后再刷,慢慢补。

题意:有F种食物,D种饮料,N头奶牛,只能吃某种食物和饮料(而且只能吃特定的一份),一种食物被一头牛吃了之后,其余牛就不能吃了 第一行有N,F,D三个整数:接着2-N+1行代表第i头牛,前面两个整数是Fi与Di(食物与饮料的种类数量),接着是食物的种类与饮料的种类 要求输出最多分配能够满足的牛的数量.

思路:这是一种神奇的建图方式-拆点。让我想打死都想不出来。sad

建图,有2*n+f+d+2个顶点,0表示源点,2*n+f+d+1表示汇点。 由源点指向食物,再由食物指向牛,牛再指向对应的饮料,饮料再指向汇点 当然要使每一头牛都对应每一份食物与饮料,所以应该牛i指向牛i再指向饮料,这样就可以避免一头牛只占用多份食物与饮料了 全部是有向的边,而且权值全部为1 我在这里是1到f为食物点,f+1到f+2*n为牛点,f+2*n+1到f+2*n+d为饮料点

 

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <queue>
#include <math.h>
#define N 1100
#define inf 0x3f3f3f3f
typedef int ll;
using namespace std;
ll n,f,d,tt,dis[N],head[N];
struct node
{ll x,y,w,next;
} eg[N*N];
void init()
{tt=0;memset(head,-1,sizeof(head));
}
void add(int xx,int yy)
{eg[tt].x=xx;eg[tt].y=yy;eg[tt].w=1;eg[tt].next=head[xx];head[xx]=tt++;eg[tt].x=yy;eg[tt].y=xx;eg[tt].w=0;eg[tt].next=head[yy];head[yy]=tt++;
}
bool bfs(int s,int e)
{memset(dis,-1,sizeof(dis));dis[s]=0;queue<int>q;q.push(s);while(!q.empty()){int fa=q.front();q.pop();for(int i=head[fa]; i!=-1; i=eg[i].next){int v=eg[i].y;if(dis[v]==-1&&eg[i].w){dis[v]=dis[fa]+1;q.push(v);}}}if(dis[e]>0)return true;return false;
}
int dinic(int s,int maxt)
{if(s==2*n+f+d+1) return maxt;int a,sum=maxt;for(int i=head[s]; i!=-1; i=eg[i].next){int v=eg[i].y;if(dis[v]==dis[s]+1&&eg[i].w>0){a=dinic(v,min(sum,eg[i].w));eg[i].w-=a;eg[i+1].w+=a;sum-=a;}}return maxt-sum;
}
int main()
{ll xx,yy,s1,s2;scanf("%d%d%d",&n,&f,&d);init();for(int j=1;j<=f;j++){add(0,j);}for(int j=1;j<=d;j++){add(f+2*n+j,f+2*n+d+1);}for(int i=1;i<=n;i++){scanf("%d%d",&s1,&s2);for(int j=1;j<=s1;j++){scanf("%d",&xx);add(xx,f+i);}for(int j=1;j<=s2;j++){scanf("%d",&yy);add(f+n+i,f+2*n+yy);}}for(int i=1;i<=n;i++){add(f+i,f+n+i);}ll ans=0;while(bfs(0,2*n+f+d+1)){ans+=dinic(0,inf);}printf("%d\n",ans);return 0;
}

 

http://www.lbrq.cn/news/2358541.html

相关文章:

  • 如何做房产网站品牌推广与传播方案
  • 制作游戏的网站河池网站seo
  • 怀化人社网站百度推广优化师
  • 唐山制作手机网站51趣优化网络seo工程师教程
  • 蝙蝠做等级的网站76人vs猛龙
  • 聊城做网站做的不错的网络公司优化大师免费下载安装
  • 做动态网站的用工具淘宝客推广
  • 泗阳做网站公司2023年广州疫情最新消息
  • 安顺建设局网站官网广告网站策划方案
  • 扬州做公司网站百度账号客服24小时人工电话
  • 一家做特卖的网站国内能用的搜索引擎
  • 曲阜公司网站建设价格便宜灰色词快速排名接单
  • 推进政府网站建设今日小说排行榜
  • 哪个网站做推广好软件开发公司排名
  • 专业制作网站电脑搜索引擎营销广告
  • 备案网站地址小吃培训
  • 怎样做农村电商网站新浪体育世界杯
  • 宁国做网站的公司营销战略有哪些内容
  • 网站设计公司互联网广告推广
  • 做网站用html还是python好5118
  • 做网站如何赚广费四年级的简短新闻播报
  • 海外培训视频网站建设有哪些网页设计公司
  • 网页设计实训总结报告3000字如何做网站优化
  • 课程网站的设计网络推广方式方法
  • 网站开发通过什么途径接活酒店线上推广方案有哪些
  • 网站建设欧美风格seo 培训教程
  • 沈阳企业网站设计制作深圳谷歌推广公司
  • 上海营销型网站开发宁波网络优化seo
  • 蓝田网站建设定制网站建设电话
  • 遂昌赶街网站百度推广关键词排名在哪看
  • 数据集相关类代码回顾理解 | utils.make_grid\list comprehension\np.transpose
  • github上传大文件(多种解决方案)
  • 消息中间件(Kafka VS RocketMQ)
  • 了解一下Unity Object的内存管理机制
  • 【PTA数据结构 | C语言版】根据层序序列重构二叉树
  • wkhtmltopdf导出pdf调试参数