[USACO 4.2] 完美的牛欄

★★☆?? 輸入文件:stall4.in?? 輸出文件:stall4.out?? 簡單對比
時間限制:1 s?? 內存限制:128 MB

USACO/stall4(譯by Felicia Crazy)

描述


農夫約翰上個星期剛剛建好了他的新牛棚,他使用了最新的擠奶技術。不幸的是,由于工程問題,每個牛欄都不一樣。第一個星期,農夫約翰隨便地讓奶牛們進入牛欄,但是問題很快地顯露出來:每頭奶牛都只愿意在她們喜歡的那些牛欄中產奶。上個星期,農夫約翰剛剛收集到了奶牛們的愛好的信息(每頭奶牛喜歡在哪些牛欄產奶)。一個牛欄只能容納一頭奶牛,當然,一頭奶牛只能在一個牛欄中產奶。

給出奶牛們的愛好的信息,計算最大分配方案。


格式

PROGRAM NAME: stall4

INPUT FORMAT:

(file stall4.in)

?

第一行
兩個整數,N (0 <= N <= 200)和M (0 <= M <= 200)。N是農夫約翰的奶牛數量,M是新牛棚的牛欄數量。
第二行到第N+1行

一共N行,每行對應一只奶牛。第一個數字(Si)是這頭奶牛愿意在其中產奶的牛欄的數目(0 <= Si<= M)。后面的Si個數表示這些牛欄的編號。牛欄的編號限定在區間(1..M)中,在同一行,一個牛欄不會被列出兩次。


OUTPUT FORMAT:

(file stall4.out)

?只有一行。輸出一個整數,表示最多能分配到的牛欄的數量。

SAMPLE INPUT (file stall4.in)

5 5

2 2 5

3 2 3 4

2 1 5

3 1 2 5

1 2

SAMPLE OUTPUT (file stall4.out)

4

?思路

最大流

代碼實現

 1 #include<cstdio>
 2 #include<cstring>
 3 using namespace std;
 4 const int maxn=1e5;
 5 inline int min_(int x,int y){return x<y?x:y;}
 6 int n,m,s,t,ans;
 7 int a,b;
 8 int h[maxn],hs=1,ew[maxn],et[maxn],en[maxn];
 9 void add(int u,int v){
10     ++hs,et[hs]=v,ew[hs]=1,en[hs]=h[u],h[u]=hs;
11     ++hs,et[hs]=u,ew[hs]=0,en[hs]=h[v],h[v]=hs;
12 }
13 int q[maxn],head,tail;
14 int d[maxn];
15 void SPFA(int s){
16     memset(d,0,sizeof(d));
17     head=tail=0;
18     q[head++]=s,d[s]=1;
19     while(head>tail){
20         a=q[tail++];
21         for(int i=h[a];i;i=en[i])
22         if(!d[et[i]]&&ew[i]){
23             d[et[i]]=d[a]+1;
24             if(et[i]==t) return;
25             q[head++]=et[i];
26         }
27     }
28 }
29 int ap(int k,int nw){
30     if(k==t) return nw;
31     int bw=nw;
32     for(int i=h[k];i;i=en[i])
33     if(ew[i]&&d[et[i]]==d[k]+1){
34         int dw=ap(et[i],min_(bw,ew[i]));
35         if(dw) ew[i]-=dw,ew[i^1]+=dw,bw-=dw;
36         else d[et[i]]=0;
37     }
38     return nw-bw;
39 }
40 void Dinic(){while(SPFA(s),d[t]) ans+=ap(s,n);}
41 int main(){
42     freopen("stall4.in","r",stdin);
43     freopen("stall4.out","w",stdout);
44     scanf("%d%d",&n,&m);
45     s=n+m+1,t=s+1;
46     for(int i=1;i<=n;i++) add(s,i);
47     for(int i=1;i<=m;i++) add(n+i,t);
48     for(int i=1;i<=n;i++){
49         scanf("%d",&a);
50         for(int j=1;j<=a;j++){
51             scanf("%d",&b);
52             add(i,n+b);
53         }
54     }
55     Dinic();
56     printf("%d\n",ans);
57     return 0;
58 }

?

轉載于:https://www.cnblogs.com/J-william/p/7041209.html

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

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

相關文章

003Java語言環境搭建

JRE,JDK JRE(Java Runtime Environment java運行環境)&#xff1a;包括java虛擬機和java程序所需要的核心類庫&#xff0c; 如果要運行一個開發好的java程序&#xff0c;計算機中只需要安裝一個JRE JDK&#xff08;Java Development Kit Java開發工具包&#xff09; JDK是提供給…

php 編寫mysql,自己寫的MySQL類

自己寫的MySQL類---------- php debug ----------Serverlocalhost;DataBasemysql;UserIDroot;PassWord123456resource(5) of type (mysql result)Output completed (1 sec consumed) - Normal Terminationclass DBCLS{//debug 調試開關var $debug true;//debuginfo 錯誤信息&a…

NET CORE讀取Excel.xlsx單元格內的圖片,并關聯當前業務ID推送圖片到指定服務器...

NET CORE讀取Excel.xlsx單元格圖片的場景&#xff0c;一般是批量導入業務數據&#xff0c;例如&#xff1a;藥品的圖片&#xff0c;醫師資格證&#xff0c;商品上架、商家營業資質、水果信息、用戶頭像等等這里我截個圖&#xff0c;圖文并茂更好理解特別聲明&#xff1a;粘貼圖…

CSS或HTML如何實現文字下面加點?

就像word里文字加著重號一樣&#xff0c;在字的下面加一個點&#xff0c;用CSS怎么做&#xff1f;注意&#xff0c;我說的是下面加點&#xff0c;不是文字加粗或傾斜&#xff0c;請不要回答<strong>或<em>之類的。 把要著重加點的文字用<span></span>…

數據庫常見錯誤

錯誤&#xff1a; You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 12123123123.0123.0) at line 1 解決辦法&#xff1a; 檢查對應到您的MySQL服務器版本附近使用正確的語法手冊 數…

RocketMQ 5.0 大手筆,擁抱云原生,支持流處理,高可用架構升級!

大家好&#xff0c;我是君哥。RocketMQ 5.0 已經發布一段時間了&#xff0c;今天來分享一下 RocketMQ 5.0 有哪些新特性。1 架構變化RocketMQ 5.0 架構上的變化主要是為了更好的走向云原生。RocketMQ 4.x 架構如下&#xff1a;Broker 向 Name Server 注冊 Topic 路由信息&#…

php驗證碼顯示亂碼,如何解決php驗證碼亂碼問題

php驗證碼亂碼的解決辦法&#xff1a;1、修改訪問驗證碼生成方法函數的路徑&#xff1b;2、修改文件編碼&#xff0c;并去掉BOM頭&#xff1b;3、檢查驗證碼生成方法&#xff1b;4、修改服務環境。具體問題&#xff1a;php驗證碼輸出全是亂碼...<?php session_start();head…

中國HBase技術社區第五屆MeetUp ——HBase技術解析及應用實踐(深圳站)

HBase—Hadoop Database是一個分布式的、面向列的開源數據庫&#xff0c;該技術來源于 Fay Chang 所撰寫的Google論文“Bigtable&#xff1a;一個結構化數據的分布式存儲系統”。HBase的特點是高可靠性、高性能、面向列、可伸縮的分布式存儲系統&#xff0c;如今HBase已經廣泛應…

如何查找Power BI本地報表服務器產品密鑰

Power BI 報表服務器產品密鑰&#xff0c;以便在生產環境中安裝服務器。 已下載 Power BI 報表服務器&#xff0c;并已購買 SQL Server Enterprise 軟件保障協議。 或者&#xff0c;已購買 Power BI Premium。 希望在生產環境中安裝服務器&#xff0c;但需要產品密鑰才能進行安…

【.NET番外篇】Rust環境搭建+基礎開發入門+Rust與.NET6、C++的基礎運算性能比較

前言&#xff1a;突然想打算把Rust作為將來自己主要的副編程語言。當然&#xff0c;主語言還是C#&#xff0c;畢竟.NET平臺這么強大&#xff0c;寫起來就是爽。緣起&#xff1a;之前打算一些新的產品或者新的要開發的東西&#xff0c;由于沒有歷史包袱&#xff0c;就想重新選型…

基本圖形的光柵化算法

如何在指定的輸出設備上根據坐標描述構造基本二維幾何圖形&#xff08;點、直線、圓、橢圓、多邊形域、字符串及其相關屬性等&#xff09;。 圖形生成的概念 圖形的生成&#xff1a;是在指定的輸出設備上&#xff0c;根據坐標描述構造二維幾何圖形。 圖形的掃描轉換&#xff1a…

php左側,php左側補零

在php中有兩個函數——至少有兩個是否有其他的我還不知道&#xff0c;能夠實現數字補零&#xff0c;str_pad(),sprintf()詳細如下str_pad顧名思義這個函數是針對字符串來說的這個可以對指定的字符串填補任何其它的字符串例如:str_pad(帶填補的字符串,填補后的長度&#xff0c;填…

python - work3

# -*- coding:utf-8 -*-project: jiaxyauthor: Jimmyfile: work_20181107.pyide: PyCharm Community Editiontime: 2018-11-07 10:46blog: https://www.cnblogs.com/gotesting/## 1&#xff1a;一個足球隊在尋找年齡在10歲到12歲的小女孩&#xff08;包括10歲和12歲&#xff09…

團隊-中國象棋-最終程序

托管平臺地址:https://gitee.com/zhanghongjian666/ZhongGuoXiangQi 小組名稱:exciting 小組成員合照: 程序運行方法:html 程序運行示例及運行結果:轉載于:https://www.cnblogs.com/qwsa/p/7944093.html

NET CORE 基于緩存策略的SignalR控制推送頻率(每多少秒/多少次)API接口控制(限流)...

ASP.NET Core SignalR 概述&#xff0c;自行去官網搜。SignalR 沒有控制和前端推送頻率的功能&#xff0c;就是后端一旦發送請求&#xff0c;前端立馬響應。或者前端發送請求&#xff0c;后端立馬響應&#xff0c;但是如果誤操作&#xff0c;或者業務原因&#xff0c;對產生的信…

svn 的使用(二)

這篇主要介紹下 svn 鉤子的使用&#xff0c;svn 的安裝以及配置等能夠查看 svn 的使用&#xff08;一&#xff09; 我們能夠在svn創建的倉庫目錄下看到hooks 目錄。這里面就存放這個各種svn操作同一時候會運行的腳本文件。&#xff08;你能夠自己查看每一個腳本文件&#xff0c…

java原子類場景,CAS你知道嗎?原子類AtomicInteger的ABA問題談談?,原子共面問題...

CAS你知道嗎&#xff1f;原子類AtomicInteger的ABA問題談談&#xff1f;&#xff0c;原子共面問題(1)CAS是什么&#xff1f;比較并交換舉例1, CAS產生場景代碼&#xff1f;importjava.util.concurrent.atomic.AtomicInteger;public classCASDemo {public static voidmain(Stri…

ABP Vnext 批量導入用戶,解決密碼加密問題

因為ABP Vnext在密碼加密方面使用的鹽加密的方式&#xff0c;底層的加密方式讓人摸不著頭腦。如何需要批量導入用戶的時候&#xff0c;這個密碼問題就很頭疼。假設&#xff0c;已經有一個集合List<entity>的用戶數據了&#xff0c;此時進行循環取出一條用戶信息&#xff…

深入分析JavaWeb Item7 -- HttpServletResponse詳解

Web服務器收到客戶端的http請求&#xff0c;會針對每一次請求&#xff0c;分別創建一個用于代表請求的request對象、和代表響應的response對象。request和response對象即然代表請求和響應&#xff0c;那我們要獲取客戶機提交過來的數據&#xff0c;只需要找request對象就行了。…

Spring.net學習記錄

Spring.Net功能&#xff1a; 1、控制反轉&#xff08;IOC&#xff09;&#xff1a;就是創建對象的權利由開發人員自己控制New&#xff0c;轉到了有容器來控制 2、依賴注入&#xff08;DI&#xff09;&#xff1a;就是通過容器來創建對象的時候&#xff0c;在對象初始化時給一些…