日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

HDU - 4292 Food(最大流+思维建边)

發(fā)布時(shí)間:2024/4/11 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDU - 4292 Food(最大流+思维建边) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目鏈接:點(diǎn)擊查看

題目大意:作為食堂管理人,現(xiàn)在有n個(gè)學(xué)生需要打飯,每個(gè)學(xué)生需要一個(gè)飲料和食物才能滿(mǎn)足,每個(gè)學(xué)生可以同時(shí)接受多種不同的食物和飲料,現(xiàn)在給出每種食物和飲料的個(gè)數(shù),問(wèn)最多能讓多少學(xué)生滿(mǎn)足

題目分析:這個(gè)題目和之前奶牛匹配飲料和食物的題目一模一樣。。直接拆點(diǎn)就行了,不多廢話(huà)了:

  • 源點(diǎn)->每種食物,流量為食物的數(shù)量
  • 可匹配的食物->每個(gè)人的入點(diǎn),流量為1
  • 每個(gè)人的入點(diǎn)->每個(gè)人的出點(diǎn),流量為1
  • 每個(gè)人的出點(diǎn)->可匹配的飲料,流量為1
  • 每種飲料->匯點(diǎn),流量為飲料的數(shù)量
  • 建完邊后直接跑最大流就好了,這次拿新偷到的SAP模板練練手

    代碼:

    #include<iostream> #include<cstdlib> #include<string> #include<cstring> #include<cstdio> #include<algorithm> #include<climits> #include<cmath> #include<cctype> #include<stack> #include<queue> #include<list> #include<vector> #include<set> #include<map> #include<sstream> using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=1e3+100;//點(diǎn)數(shù)的最大值const int M=N*N;//邊數(shù)的最大值char s[N];struct Node {int from,to,next;int cap; }edge[M];int tol,head[N],dep[N],gap[N];//gap[x]=y :說(shuō)明殘留網(wǎng)絡(luò)中dep[i]==x的個(gè)數(shù)為yint n;//n是總的點(diǎn)的個(gè)數(shù),包括源點(diǎn)和匯點(diǎn)void init() {tol=0;memset(head,-1,sizeof(head)); }void addedge(int u,int v,int w) {edge[tol].from=u;edge[tol].to=v;edge[tol].cap=w;edge[tol].next=head[u];head[u]=tol++;edge[tol].from=v;edge[tol].to=u;edge[tol].cap=0;edge[tol].next=head[v];head[v]=tol++; } void BFS(int start,int end) {memset(dep,-1,sizeof(dep));memset(gap,0,sizeof(gap));gap[0]=1;int que[N];int front,rear;front=rear=0;dep[end]=0;que[rear++]=end;while(front!=rear){int u=que[front++];if(front==N)front=0;for(int i=head[u];i!=-1;i=edge[i].next){int v=edge[i].to;if(dep[v]!=-1)continue;que[rear++]=v;if(rear==N)rear=0;dep[v]=dep[u]+1;++gap[dep[v]];}} } int SAP(int start,int end) {int res=0;BFS(start,end);int cur[N];int S[N];int top=0;memcpy(cur,head,sizeof(head));int u=start;int i;while(dep[start]<n){if(u==end){int temp=inf;int inser;for(i=0;i<top;i++)if(temp>edge[S[i]].cap){temp=edge[S[i]].cap;inser=i;}for(i=0;i<top;i++){edge[S[i]].cap-=temp;edge[S[i]^1].cap+=temp;}res+=temp;top=inser;u=edge[S[top]].from;}if(u!=end&&gap[dep[u]-1]==0)//出現(xiàn)斷層,無(wú)增廣路break;for(i=cur[u];i!=-1;i=edge[i].next)if(edge[i].cap!=0&&dep[u]==dep[edge[i].to]+1)break;if(i!=-1){cur[u]=i;S[top++]=i;u=edge[i].to;}else{int min=n;for(i=head[u];i!=-1;i=edge[i].next){if(edge[i].cap==0)continue;if(min>dep[edge[i].to]){min=dep[edge[i].to];cur[u]=i;}}--gap[dep[u]];dep[u]=min+1;++gap[dep[u]];if(u!=start)u=edge[S[--top]].from;}}return res; }int main() { // freopen("input.txt","r",stdin); // ios::sync_with_stdio(false);int f,d;while(scanf("%d%d%d",&n,&f,&d)!=EOF){//1~n:person1 n+1~2*n:person2 2*n+1~2*n+f:food 2*n+f+1~2*n+f+d:drink init();int st=N-1,ed=st-1;for(int i=1;i<=f;i++)//st->food{int val;scanf("%d",&val);addedge(st,2*n+i,val);}for(int i=1;i<=d;i++)//drink->ed{int val;scanf("%d",&val);addedge(2*n+f+i,ed,val);}for(int i=1;i<=n;i++)//person1->person2addedge(i,i+n,1);for(int i=1;i<=n;i++){scanf("%s",s+1);for(int j=1;j<=f;j++){if(s[j]=='Y')addedge(2*n+j,i,1);}}for(int i=1;i<=n;i++){scanf("%s",s+1);for(int j=1;j<=d;j++){if(s[j]=='Y')addedge(i+n,2*n+f+j,1);}}n+=2;printf("%d\n",SAP(st,ed));}return 0; }

    ?

    總結(jié)

    以上是生活随笔為你收集整理的HDU - 4292 Food(最大流+思维建边)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 操人视频在线观看 | 插女生下面 | 无遮挡裸光屁屁打屁股男男 | 人人妻一区二区三区 | 黄片毛片在线免费观看 | 一区二区在线视频 | 亚洲福利影院 | 精品久久久蜜桃 | 亚洲第一成年人网站 | www国产亚洲精品 | 麻豆视频网站入口 | 国产成人无码精品亚洲 | 国产碰碰| 亚洲精品无码成人 | 亚洲欧美成人一区二区 | 一区二区的视频 | 欧美激情免费在线观看 | 精品久久久久久久久久久久久久久久久 | 国产精品国产一区 | 日本成人黄色片 | 亚洲欧美日韩第一页 | 亚洲二区一区 | 91好色先生tv | 亚洲av永久无码国产精品久久 | 天堂中文字幕在线观看 | 扶她futa粗大做到怀孕 | 亚洲精品高清在线观看 | 男女搞网站 | 国产精品视频一区二区在线观看 | 欧美激情一区二区三区蜜桃视频 | 91最新地址永久入口 | 国产成人无码一二三区视频 | 无码人妻精品一区二区三区66 | 双性懵懂美人被强制调教 | 久久久久久久国产 | 国产欧美精品一区二区色综合 | www一区二区三区 | 玖玖国产 | 日批国产 | 一级草逼片 | 夜夜夜综合 | 国产aa毛片 | 中文字幕亚洲图片 | 99爱爱| 亚洲在线天堂 | 天天操天天插天天干 | 国产一卡二卡三卡四卡 | 欧美xxxx精品 | 丁香婷婷社区 | 精品日本视频 | 天堂在线中文网 | 国产做受视频 | 亚洲综合自拍 | 九色视频国产 | 亚洲第一黄色网 | 国产精品入口66mio男同 | 欧美大片在线免费观看 | 国产一区黄色 | 日本黄色生活片 | 日韩成人在线一区 | 日本少妇在线 | 亚洲精品~无码抽插 | 黄色片的网站 | 精品动漫一区二区三区 | 精品九九在线 | 欧美一区欧美二区 | 亚洲精品成人片在线观看精品字幕 | 国产欧美精品一区二区色综合朱莉 | 丝袜高跟av| 成人91网站 | 精品人体无码一区二区三区 | 久久久久久久人妻无码中文字幕爆 | 国产91免费| 成人精品一区二区三区中文字幕 | 国产午夜性春猛交ⅹxxx | 性av网站| 色婷婷激情网 | 国产a不卡 | 国产精品乱码一区二区视频 | 男女男精品视频 | 黄色天堂av | 久久91亚洲精品中文字幕奶水 | 前任攻略在线观看免费完整版 | 午夜激情成人 | 黄色一级片 | 少妇又紧又色 | 亚洲 小说区 图片区 都市 | 欧美黄色大全 | 日韩成人精品一区二区 | 精品夜夜澡人妻无码av | 8mav在线 | 免费观看视频一区二区 | 日韩专区欧美专区 | 亚洲欧美日韩高清 | 69视频网 | 办公室摸腿吻胸激情视频 | 人妻少妇偷人精品视频 | 亚洲第一在线播放 | 91精品国产乱码久久久久 |