教輔的組成(網絡流果題 洛谷P1231)

題目描述

蒟蒻HansBug在一本語文書里面發現了一本答案,然而他卻明明記得這書應該還包含一份練習題。然而出現在他眼前的書多得數不勝數,其中有書,有答案,有練習冊。已知一個完整的書冊均應該包含且僅包含一本書、一本練習冊和一份答案,然而現在全都亂做了一團。許多書上面的字跡都已經模糊了,然而HansBug還是可以大致判斷這是一本書還是練習冊或答案,并且能夠大致知道一本書和答案以及一本書和練習冊的對應關系(即僅僅知道某書和某答案、某書和某練習冊有可能相對應,除此以外的均不可能對應)。既然如此,HansBug想知道在這樣的情況下,最多可能同時組合成多少個完整的書冊。

輸入輸出格式

輸入格式:

第一行包含三個正整數N1、N2、N3,分別表示書的個數、練習冊的個數和答案的個數。

第二行包含一個正整數M1,表示書和練習冊可能的對應關系個數。

接下來M1行每行包含兩個正整數x、y,表示第x本書和第y本練習冊可能對應。(1<=x<=N1,1<=y<=N2)

第M1+3行包含一個正整數M2,表述書和答案可能的對應關系個數。

接下來M2行每行包含兩個正整數x、y,表示第x本書和第y本答案可能對應。(1<=x<=N1,1<=y<=N3)

輸出格式:

輸出包含一個正整數,表示最多可能組成完整書冊的數目。

輸入輸出樣例

輸入樣例#1:
5 3 4
5
4 3
2 2
5 2
5 1
5 3
5
1 3
3 1
2 2
3 3
4 3
輸出樣例#1:
2

說明

樣例說明:

如題,N1=5,N2=3,N3=4,表示書有5本、練習冊有3本、答案有4本。

M1=5,表示書和練習冊共有5個可能的對應關系,分別為:書4和練習冊3、書2和練習冊2、書5和練習冊2、書5和練習冊1以及書5和練習冊3。

M2=5,表示數和答案共有5個可能的對應關系,分別為:書1和答案3、書3和答案1、書2和答案2、書3和答案3以及書4和答案3。

所以,以上情況的話最多可以同時配成兩個書冊,分別為:書2+練習冊2+答案2、書4+練習冊3+答案3。

數據規模:

對于數據點1, 2, 3,M1,M2<= 20

對于數據點4~10,M1,M2 <= 20000

題解:將書本拆點,練習冊連向書本1,書本2連向答案,再建立超級源點和超級匯點,跑一邊最大流即可,敲這題是為了打模板的。

#include<algorithm>
#include<fstream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<iostream>
using namespace std;int n1,n2,n3,m1,m2,x,y,cur;//n1是書,n2是練習冊,n3是答案,m1書冊,m2書答案 
int head[50050],lev[50050],q[50050];
struct tedge
{int to,nex,val;
}e[200010];void Add(int u,int v,int val)
{cur++;e[cur].to = v;e[cur].nex = head[u];e[cur].val = val;head[u] = cur;cur++;e[cur].to = u;e[cur].nex = head[v];e[cur].val = 0;head[v] = cur;
}int bfs(int S,int T)
{int h=1,t=1;for (int i=0; i<=2*n1+n2+n3+1+1; i++)lev[i] = 0;q[h] = S;  lev[S] = 1;while (h<=t){int u=q[h];for (int i=head[u]; i!=-1; i=e[i].nex){int v=e[i].to;if (lev[v]==0&&e[i].val>0){lev[v] = lev[u]+1;t++;  q[t]=v;}}h++;}return (max(lev[T],0));
}int dfs(int u,int T,int f)
{if (u==T||f==0) return f;int ret=0,d;for (int i=head[u]; i!=-1; i=e[i].nex){int v=e[i].to;if (lev[v]>lev[u]&&e[i].val>0){d=dfs(v,T,min(f,e[i].val));ret+=d;f-=d;e[i].val-=d;if (i%2==0) e[i-1].val+=d;else e[i+1].val+=d;if (f==0) break;}}return ret;
}void Dinic()
{int maxflow=0;for (;bfs(1,2*n1+n2+n3+1+1);)maxflow+=dfs(1,2*n1+n2+n3+1+1,1e9);printf("%d\n",maxflow);
}int main()
{freopen("c.in","r",stdin);freopen("c.out","w",stdout);scanf("%d%d%d",&n1,&n2,&n3);for (int i=0; i<=2*n1+n2+n3+1+1; i++)head[i] = -1;scanf("%d",&m1);for (int i=1; i<=m1; i++){int x,y;scanf("%d%d",&x,&y);Add(2*n1+y+1,x+1,1);}scanf("%d",&m2);for (int i=1; i<=m2; i++){int x,y;scanf("%d%d",&x,&y);Add(x+n1+1,2*n1+n2+y+1,1);}for (int i=1; i<=n1; i++)Add(i+1,i+n1+1,1);for (int i=1; i<=n2; i++)Add(1,2*n1+i+1,1);for (int i=1; i<=n3; i++)Add(2*n1+n2+i+1,2*n1+n2+n3+1+1,1);Dinic();return 0;
}

?

轉載于:https://www.cnblogs.com/Janous/p/7683549.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/391091.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/391091.shtml
英文地址,請注明出處:http://en.pswp.cn/news/391091.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java中怎么樣檢查一個字符串是不是數字呢

問題&#xff1a;Java中怎么樣檢查一個字符串是不是數字呢 在解析之前&#xff0c;怎么樣檢查一個字符串是不是數字呢 回答一 這些通常是由一個簡單的用戶自定義函數去解決的&#xff08;即&#xff0c;自帶的 “isNumeric” 函數&#xff09; 例如 public static boolean…

小程序支付api密鑰_如何避免在公共前端應用程序中公開您的API密鑰

小程序支付api密鑰問題 (The Problem) All you want to do is fetch some JSON from an API endpoint for the weather, some book reviews, or something similarly simple.您要做的就是從API端點獲取一些有關天氣的JSON&#xff0c;一些書評或類似的簡單內容。 The fetch qu…

永無止境_永無止境地死:

永無止境Wir befinden uns mitten in der COVID-19-Pandemie und damit auch im Mittelpunkt einer medialen Geschichte, die durch eine noch nie dagewesene Komplexitt und Dynamik gekennzeichnet ist. Wie kann Informationsdesign helfen, diese Explosion von Nachrich…

HDU4612 Warm up —— 邊雙聯通分量 + 重邊 + 縮點 + 樹上最長路

題目鏈接&#xff1a;http://acm.split.hdu.edu.cn/showproblem.php?pid4612 Warm up Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Submission(s): 7206 Accepted Submission(s): 1681 Problem DescriptionN planets are …

Android sqlite load_extension漏洞解析

路人甲 2015/09/25 14:540x01 sqlite load_extensionSQLite從3.3.6版本&#xff08;http://www.sqlite.org/cgi/src/artifact/71405a8f9fedc0c2&#xff09;開始提供了支持擴展的能力&#xff0c;通過sqlite_load_extension API&#xff08;或者load_extensionSQL語句&#xf…

去除Java字符串中的空格

問題&#xff1a;去除Java字符串中的空格 俺有一個像這樣的字符串 mysz "namejohn age13 year2001";我想要去除字符串里面的空格。我嘗試使用 trim() &#xff0c;但是呢它只去除了字符串前后的空格。我也嘗試用 ("\W", “”)&#xff0c;但是它把也給搞…

谷歌瀏覽器bug調試快捷鍵_Bug壓榨初學者指南:如何使用調試器和其他工具查找和修復Bug

谷歌瀏覽器bug調試快捷鍵As web developers, it often feels like we spend more time fixing bugs and trying to solve problems than we do writing code. In this guide well look at some common debugging techniques, so lets get stuck in.作為Web開發人員&#xff0c;…

吳恩達神經網絡1-2-2_圖神經網絡進行藥物發現-第1部分

吳恩達神經網絡1-2-2預測溶解度 (Predicting Solubility) 相關資料 (Related Material) Jupyter Notebook for the article Jupyter Notebook的文章 Drug Discovery with Graph Neural Networks — part 2 圖神經網絡進行藥物發現-第2部分 Introduction to Cheminformatics 化學…

再利用Chakra引擎繞過CFG

xlab 2015/12/24 15:00Author:[email protected]0x00 前言本文源自一次與TK閑聊&#xff0c;期間得知成功繞過CFG的經過與細節(參考&#xff1a;[利用Chakra JIT繞過DEP和CFG])。隨即出于對技術的興趣&#xff0c;也抽出一些時間看了相關的東西&#xff0c;結果發現了另一處繞…

論文搜索源

中國科學院文獻情報中心 見下圖 中國計算機學會推薦國際學術會議和期刊目錄 EI學術會議中心,        engieer village 轉載于:https://www.cnblogs.com/cxy-941228/p/7693097.html

重學TCP協議(10)SYN flood 攻擊

1.SYN flood 攻擊 SYN Flood&#xff08;半開放攻擊&#xff09;是一種拒絕服務&#xff08;DDoS&#xff09;攻擊&#xff0c;其目的是通過消耗所有可用的服務器資源使服務器不可用于合法流量。通過重復發送初始連接請求&#xff08;SYN&#xff09;數據包&#xff0c;攻擊者能…

大數據入門課程_我根據數千個數據點對互聯網上的每門數據科學入門課程進行了排名...

大數據入門課程by David Venturi大衛文圖里(David Venturi) A year ago, I dropped out of one of the best computer science programs in Canada. I started creating my own data science master’s program using online resources. I realized that I could learn everyt…

python 數據框缺失值_Python:處理數據框中的缺失值

python 數據框缺失值介紹 (Introduction) In the last article we went through on how to find the missing values. This link has the details on the how to find missing values in the data frame. https://medium.com/kallepalliravi/python-finding-missing-values-in-…

Spring Cloud 5分鐘搭建教程(附上一個分布式日志系統項目作為參考) - 推薦

http://blog.csdn.net/lc0817/article/details/53266212/ https://github.com/leoChaoGlut/log-sys 上面是我基于Spring Cloud ,Spring Boot 和 Docker 搭建的一個分布式日志系統. 目前已在我司使用. 想要學習Spring Cloud, Spring Boot以及Spring 全家桶的童鞋,可以參考學習,如…

51nod1832(二叉樹/高精度模板+dfs)

題目鏈接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId1832 題意: 中文題誒~ 思路: 若二叉樹中有 k 個節點只有一個子樹, 則答案為 1 << k. 詳情參見:http://blog.csdn.net/gyhguoge01234/article/details/77836484 代碼: 1 #include <iostream&g…

重學TCP協議(11)TFO(Tcp Fast Open)

1. TFO 為了改善web應用相應時延&#xff0c;google發布了通過修改TCP協議利用三次握手時進行數據交換的TFO(TCP fast open&#xff0c;RFC 7413)。 TFO允許在TCP握手期間發送和接收初始SYN分組中的數據。如果客戶端和服務器都支持TFO功能&#xff0c;則可以減少建立到同一服…

[網絡安全] 遠程登錄

遠程登錄方式: 1.圖像化遠程登錄 做法: 運行"窗口"輸入 "mstsc " 輸入ip地址 注意: 被遠程計算機&#xff0c;必須打開遠程登錄服務: 信息面板–系統–允許遠程訪問。被遠程計算機&#xff0c;必須存在擁有遠程桌面權限的用戶。 2.命令行遠程登錄 teln…

外星人圖像和外星人太空船_衛星圖像:來自太空的見解

外星人圖像和外星人太空船By Christophe Restif & Avi Hoffman, Senior Software Engineers, Crisis Response危機應對高級軟件工程師Christophe Restif和Avi Hoffman Editor’s note: In 2019, we piloted a new feature in Search SOS Alerts for major California wild…

chrome恐龍游戲_如何玩沒有互聯網的Google Chrome恐龍游戲-在線和離線

chrome恐龍游戲Several years ago, Google added a fun little Easter egg to Chrome: if your internet went down and you tried to visit a web page, youd see the message "Unable to connect to the Internet" or "No internet" with a little pixi…

Hotpatch潛在的安全風險

屎蛋 2016/06/22 10:11author:[email protected]0x00 “Hotpatch”簡介IOS App的開發者們經常會出現這類問題&#xff1a;當一個新版本上線后發現存在一個嚴重的bug&#xff0c;有可能因為一個邏輯問題導致支付接口存在被薅羊毛的風險&#xff0c;這個時候能做的只能是趕快修復…