酒店之王

酒店之王

題目描述

XX酒店的老板想成為酒店之王,本著這種希望,第一步要將酒店變得人性化。由于很多來住店的旅客有自己喜好的房間色調、陽光等,也有自己所愛的菜,但是該酒店只有p間房間,一天只有固定的q道不同的菜。

有一天來了n個客人,每個客人說出了自己喜歡哪些房間,喜歡哪道菜。但是很不幸,可能做不到讓所有顧客滿意(滿意的條件是住進喜歡的房間,吃到喜歡的菜)。

這里要怎么分配,能使最多顧客滿意呢?

輸入輸出格式

輸入格式:

?

第一行給出三個正整數表示n,p,q(<=100)。

之后n行,每行p個數包含0或1,第i個數表示喜不喜歡第i個房間(1表示喜歡,0表示不喜歡)。

之后n行,每行q個數,表示喜不喜歡第i道菜。

?

輸出格式:

?

最大的顧客滿意數。

?

輸入輸出樣例

輸入樣例#1:
2 2 2
1 0
1 0
1 1
1 1

輸出樣例#1:
1

題解:
裸的最大流,只不過人要拆成兩個點,用以保證每一個人只用一次。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<cstdlib>
#include<queue>
#include<stack>
#include<vector>
#include<ctime>
using namespace std;
int n,m,l;
struct node
{int next,to,cap;
}edge[300001];
int size=1,head[501];
void putin(int from,int to,int cap)
{size++;edge[size].next=head[from];edge[size].cap=cap;edge[size].to=to;head[from]=size;
}
void in(int from,int to,int cap)
{putin(from,to,cap);putin(to,from,0);
}
int dist[501],numbs[501];
void bfs(int src,int des)
{int i;queue<int>mem;mem.push(des);numbs[0]++;while(!mem.empty()){int x=mem.front();mem.pop();for(i=head[x];i!=-1;i=edge[i].next){int y=edge[i].to;if(edge[i].cap==0&&dist[y]==0&&y!=des){dist[y]=dist[x]+1;numbs[dist[y]]++;mem.push(y);}}}return;
}
int dfs(int src,int flow,int des)
{if(src==des)return flow;int i,low=0,mindist=n+n+m+l+2;for(i=head[src];i!=-1;i=edge[i].next){int y=edge[i].to;if(edge[i].cap){if(dist[y]==dist[src]-1){int t=dfs(y,min(flow-low,edge[i].cap),des);edge[i].cap-=t;edge[i^1].cap+=t;low+=t;if(dist[src]>=n+n+m+l+2)return low;if(low==flow)break;}mindist=min(mindist,dist[y]+1);}}if(!low){if(!(--numbs[dist[src]]))dist[n+n+m+l+2]=n+n+m+l+2;++numbs[dist[src]=mindist];}return low;
}
int ISAP(int src,int des)
{int ans=0;bfs(src,des);while(dist[0]<n+n+m+l+2)ans+=dfs(src,2e8,des);return ans;
}
int main() 
{int i,j;memset(head,-1,sizeof(head));scanf("%d%d%d",&n,&m,&l);for(i=1;i<=m;i++)in(0,i,1);for(i=m+n+n+1;i<=m+n+n+l;i++)in(i,n+n+m+l+1,1);for(i=1;i<=n;i++){for(j=1;j<=m;j++){int k;scanf("%d",&k);if(k)in(j,m+i,1);}}for(i=1;i<=n;i++){for(j=1;j<=l;j++){int k;scanf("%d",&k);if(k)in(m+n+i,m+n+n+j,1);}}for(i=m+1;i<=m+n;i++){in(i,i+n,1);}printf("%d",ISAP(0,n+n+m+l+1));return 0;
}

?

轉載于:https://www.cnblogs.com/huangdalaofighting/p/6885888.html

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

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

相關文章

使用IntelliJ IDEA碰到的問題總結

文章目錄問題一&#xff1a;無法創建Java Class文件問題一&#xff1a;無法創建Java Class文件 今天打開項目時&#xff0c;發現右擊新建不了java.class文件&#xff0c;于是嘗試了以下方法&#xff1a; &#xff08;1&#xff09;選擇 File——>Project Structure——>…

為什么shell腳本第一行要#!/bin/sh

告訴操作系統, 此腳本的解釋器為 /bin/sh 這個可執行文件 類似地, 如果你的腳本用 bash, ksh, 解釋, 第一行就應該是#!/bin/bash #!/bin/ksh 之類的 或者, 你自己定義一種腳本語言, 再自己寫個解釋器去執行它, 比如說叫 xshell, 放在 /usr/local/bin 下, 你的腳本第一行就應該是…

linux文本處理常用指令總結

引子 作為一個偏愛windows的程序員&#xff0c;以前做文本處理的時候總是喜歡在windows下用notepad等圖形化工具處理&#xff0c;比如有時需要把linux服務器上一個文件進行一次全局字符串替換這樣簡單的操作&#xff0c;還得把文件down到本地編輯好再傳回去。這兩天買了本《鳥哥…

CSS——基礎選擇器

CSS的基礎選擇器1 CSS指的是層疊樣式表2 CSS規則由兩個主要的部分構成選擇器&#xff0c;以及一條或多條聲明3 選擇器通常是你需要改變樣式的 HTML 元素如h14 每條聲明由一個屬性和一個值組成&#xff0c;每個屬性有一個值&#xff0c;屬性和值被冒號分開5 屬性大于 …

Linux中chown和chmod的區別和用法

chmod修改第一列內容&#xff0c; chown修改第3、4列內容&#xff1a; chown用法&#xff1a; 用來更改某個目錄或文件的用戶名和用戶組。 chown 用戶名:組名 文件路徑&#xff08;可以是絕對路徑也可以是相對路徑&#xff09; 例1&#xff1a;chown root:root /tmp/tmp1 就…

玩大數據期間碰到的一些問題總結

文章目錄問題一&#xff1a;Zookeeper節點數量為什么建議是奇數個&#xff1f;問題二&#xff1a;HA機制的Hadoop集群中Journal Node 作用問題三&#xff1a;兩個datanode節點互相排斥怎么解決&#xff08;集群無法識別新加入的Datanode&#xff09;&#xff1f;問題四&#xf…

JAVA的SSH框架登錄注冊

Struts 的MVC設計模式可以使我們的邏輯變得很清晰&#xff0c;主要負責表示層的顯示。 Spring 的IOC和AOP可以使我們的項目在最大限度上解藕。 hibernate的就是實體對象的持久化了, 數據庫的封裝。 項目截圖&#xff1a;(代碼是按照項目截圖上傳的&#xff0c;直接對號入座即可…

Visual Studio Code 前端調試不完全指南

本文最初發布于我的個人博客&#xff1a;咀嚼之味Visual Studio Code (以下簡稱 vscode) 如今已經代替 Sublime&#xff0c;成為前端工程師們最喜愛的代碼編輯器。它作為一個大型的開源項目&#xff0c;不斷推陳出新&#xff1b;社區中涌現出大量優質的插件&#xff0c;以支持我…

MySQL中(delete、truncate、drop) 的區別

delete、truncate、drop的用法 MySQL 數據表中delete刪除數據的通用語法&#xff1a; ###刪除 students_tbl 表中 student_id 為3 的記錄&#xff1a; delete from students_tbl where student_id3; MySQL 數據表中truncate刪除數據的通用語法&#xff1a; ###刪除 students_…

機器學習之LDA主題模型算法

文章目錄1、知道LDA的特點和應用方向1.1、特點1.2、應用方向2、知道Beta分布和Dirichlet分布數學含義3、了解共軛先驗分布4、知道先驗概率和后驗概率5、知道參數α值的大小對應的含義6、掌握LDA主題模型的生成過程7、知道超參數α等值的參考值8、LDA總結1、知道LDA的特點和應用…

分別寫出引入CSS的3種方式, 特點, 優先級

第一&#xff1a;css的三種引入方式 1.行內樣式 最直接最簡單的一種&#xff0c;直接對HTML標簽使用style""&#xff0c;例如&#xff1a; <p style"color:#F00; "></p> 缺點&#xff1a;HTML頁面不純凈&#xff0c;文件體積大&#xff0c…

[Go] Template 使用簡介

Golang 提供了兩個標準庫用來處理模板 text/template 和 html/template。我們使用 html/template 格式化 html 字符。 模板引擎 模板引擎很多&#xff0c;Python 的 jinja&#xff0c;nodejs 的 jade 等都很好。所謂模板引擎&#xff0c;則將模板和數據進行渲染的輸出格式化后的…

內存泄露監測

2019獨角獸企業重金招聘Python工程師標準>>> iOS 內存泄露監測 144 作者 謝謝生活 已關注 2017.05.19 17:38* 字數 4235 閱讀 209評論 0喜歡 6 iOS可能存在的內存泄露&#xff1a;block 循環引用。當一個對象有一個block屬性&#xff0c;而block屬性又引用這個對象…

玩Azkaban跳過的坑

文章目錄一號坑&#xff1a;啟動Azkaban報錯&#xff1a;User xml file conf/azkaban-users.xml doesnt exist.二號坑&#xff1a;報錯&#xff1a;failed SslSocketConnector0.0.0.0:8443: java.io.FileNotFoundException: /home/hadoop/app/azkaban/azkaban-web-2.5.0/bin/ke…

兩種解除禁止右鍵、選中、復制的方法

我在網上找的 兩種解除禁止右鍵、選中、復制的方法 1、直接存到書簽點擊即可 javascript:(function(){var docdocument;var bddoc.body;bd.onselectstartbd.oncopybd.onpastebd.onkeydownbd.oncontextmenubd.onmousemovebd.onselectstartbd.ondragstartdoc.onselectstartdoc.o…

刪除節點removeChild()

http://www.imooc.com/code/1700 刪除節點removeChild() removeChild() 方法從子節點列表中刪除某個節點。如刪除成功&#xff0c;此方法可返回被刪除的節點&#xff0c;如失敗&#xff0c;則返回 NULL。 語法: nodeObject.removeChild(node) 參數: node &#xff1a;必需&…

機器學習自主解決安全威脅離我們還有多遠?

曾經聽見不止一次這樣的問題&#xff1a; “機器學習會替代基于人工經驗規則的安全解決方案么&#xff1f;”把這個問題放在去年來看&#xff0c;我們已經得到了非常多的討論甚至是一些已經實際應用的解決方案&#xff0c;對于人工智能在安全以及其它各種對數據進行價值挖掘的場…

Linux執行定時任務(crontab)遇到的坑

文章目錄前言&#xff1a;1、建立定時任務的兩種方式1.1、crontab -e1.2、vi /etc/ crontab2、兩種方法的區別2.1、用戶級2.2、系統級3、解決辦法前言&#xff1a; 之前第一次要在生產環境部署定時任務&#xff0c;無奈的是&#xff0c;博主對定時任務這塊還是個小白&#xff…

Vue:解決[Vue warn]: Failed to resolve directive: modle (found in Anonymous)

解決問題 [Vue warn]: Failed to resolve directive: modle (found in <ComponentA>) console.error(("[Vue warn]: " msg trace)); 原因是 我把model 寫成了 modle 這類錯誤一般是單詞寫錯了 (found in <Anonymous>) 解決思路

Oracle樹查詢及相關函數

Oracle樹查詢的最重要的就是select...start with... connect by ...prior 語法了。依托于該語法&#xff0c;我們可以將一個表形結構的中以樹的順序列出來。在下面列述了Oracle中樹型查詢的常用查詢方式以及經常使用的與樹查詢相關的Oracle特性函數等&#xff0c;在這里只涉及到…