【網絡流24題】星際轉移問題(最大流)

【網絡流24題】星際轉移問題(最大流)

題面

Cogs

題解

因為天數是未知的,所以我們要想辦法處理天數
可以選擇二分或者依次累加天數
因為數據范圍較小,使用二分可能反而復雜度會增高
所以使用不斷累加天數
那么,把所有的點拆成天數個

因為每天都可以當做有無數人要做飛船
因此從源點向每天的地球連邊,容量為INF

因為空間站可以留人
所以從前一天的空間站向后一天的空間站連一條容量為INF的邊

因為循環移動的飛船
因此,從飛船上一天的所在的星球向當前這一天所在的星球連邊
容量為飛船的容量

因為到達月球就是終點了
所以每天的月球向匯點連邊

這時候,最大流就是可以運輸的最大人數
因為是依次加邊,所以不需要推倒重建
當最大流大于所要求的人數時即可退出輸出答案


#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<set>
#include<map>
#include<vector>
#include<queue>
using namespace std;
#define MAX 12000
#define MAXL 5000000
#define INF 1000000000
inline int read()
{int x=0,t=1;char ch=getchar();while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();if(ch=='-')t=-1,ch=getchar();while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();return x*t;
}
struct Line
{int v,next,w;
}e[MAXL];
int h[MAX],cnt=2,level[MAX];
int n,m,K,S,T,Hp[MAX],tt,R[MAX];
int p[MAX][50],pos[MAX],Flow;
inline void Add(int u,int v,int w)
{e[cnt]=(Line){v,h[u],w};h[u]=cnt++;e[cnt]=(Line){u,h[v],0};h[v]=cnt++;
}
bool bfs()
{memset(level,0,sizeof(level));level[S]=1;queue<int> Q;Q.push(S);while(!Q.empty()){int u=Q.front();Q.pop();for(int i=h[u];i;i=e[i].next){int v=e[i].v;if(e[i].w&&!level[v]){level[v]=level[u]+1;Q.push(v);}}}return level[T];
}
int dfs(int u,int flow)
{if(u==T||!flow)return flow;int ret=0;for(int i=h[u];i;i=e[i].next){int v=e[i].v;if(e[i].w&&level[v]==level[u]+1){int d=dfs(v,min(flow,e[i].w));ret+=d;flow-=d;e[i].w-=d;e[i^1].w+=d;}}if(!ret)level[u]=0;return ret;
}
void Dinic(){while(bfs())Flow+=dfs(S,INF);}
int main()
{freopen("home.in","r",stdin);freopen("home.out","w",stdout);n=read()+2;m=read();K=read();S=0;T=10000;for(int i=1;i<=m;++i){Hp[i]=read();tt=max(tt,R[i]=read());for(int j=0;j<R[i];++j){p[i][j]=read()+1;if(p[i][j]==0)p[i][j]=n;}}Add(S,1,INF);Add(n,T,INF);for(int t=1;t<=100;++t){Add(S,t*n+1,INF);Add(t*n+n,T,INF);for(int i=1;i<=m;++i){int u=p[i][pos[i]];pos[i]=(pos[i]+1)%R[i];int v=p[i][pos[i]];Add(n*t+u-n,n*t+v,Hp[i]);}for(int i=2;i<n;++i)Add(t*n-n+i,t*n+i,INF);Dinic();if(Flow>=K){printf("%d\n",t);return 0;}}puts("0");return 0;
}

轉載于:https://www.cnblogs.com/cjyyb/p/8178975.html

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

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

相關文章

使用 gunicorn 部署flask項目

1、WSGI協議 Web框架致力于如何生成HTML代碼&#xff0c;而Web服務器用于處理和響應HTTP請求。Web框架和Web服務器之間的通信&#xff0c;需要一套雙方都遵守的接口協議。WSGI協議就是用來統一這兩者的接口的。 2、WSGI容器 常用的WSGI容器有Gunicorn和uWSGI&#xff0c;但G…

軟件需求與問題解決

&#xff08;一&#xff09; 小滿當上項目經理后不久&#xff0c;參與了一個大項目。當時市場簽下來的時候&#xff0c;公司里面是歡天喜地的。項目做了一年多。到了交付的時候&#xff0c;用戶卻很不滿意&#xff0c;當初說好的東西&#xff0c;好多都變了卦。用戶是上帝&…

flex 換主軸后子元素占滿_Chrome72 嵌套 flex 布局修改,你的網站可能會發生布局錯亂...

起源2019 年 1 月 29 日&#xff0c;Chrome72 正式版(72.0.3626.81)發布&#xff0c;本次發布帶來了一個改變&#xff0c;且沒有在更新日志中提及&#xff0c;該改變導致某些網站發生了布局錯亂。該改變主要針對的是嵌套的flex布局&#xff0c;下面我們一起看下是怎么回事。問題…

使用 Django + Wusgi + Nginx 部署 Django

如何在生產上部署Django? Django的部署可以有很多方式&#xff0c;采用 nginxuwsgi 的方式是其中比較常見的一種方式。 uwsgi介紹 uWSGI是一個Web服務器&#xff0c;它實現了WSGI協議、uwsgi、http等協議。Nginx中HttpUwsgiModule的作用是與uWSGI服務器進行交換。 WSGI / …

網絡學習網址

網絡之路博客 http://ccieh3c.com/ 轉載于:https://www.cnblogs.com/changha0/p/8179801.html

路由到另外一個頁面_Nextjs使用解讀一(項目搭建與路由系統)

文章說明&#xff1a;1. 之前想搭建個人博客&#xff0c;由于學習的是react技術棧&#xff0c;所以就到處搜羅資料學了nextjs&#xff0c;配合koa就把博客搭起來了。該系列文章基于我的學習筆記&#xff0c;重新整理了一遍&#xff0c;如果有錯誤之處&#xff0c;還請指正。2. …

微信獲取token -1000

最終翻看微信開發api找到需要去配置IP白名單。只需要配置訪問來源IP即可。 轉載于:https://www.cnblogs.com/yangjinqiang/p/8184663.html

產品技術和管理

為啥純粹為消費者傳遞體驗的活動可以價格不菲&#xff0c;幾為暴利&#xff1f;——談客戶體驗作為客戶價值提升之源 不論產品還是服務&#xff0c;如果能夠為消費者傳遞有益的體驗&#xff0c;其價值就可以在一般的產品服務之上得以體現&#xff1b;附加了體驗的產品&#xff…

Linux 修改系統編碼

linux服務器的字符集設置可能影響到網站頁面出現 “&#xff1f;&#xff1f;&#xff1f;” 等問號亂碼&#xff0c;還有可能導致文件中的漢字部分出現亂碼。有兩個原因 服務器沒有安裝 zh_CN.UTF-8 字符集&#xff0c;導致不支持中文&#xff01;服務器雖然裝了 zh_CN.UTF-8…

jquery ztree 設置勾選_047 JAVA-jQuery

jQuery操作元素屬性的值表單:<body><input type"button" name"" id"but1" value"測試獲得屬性值" /><hr />賬號&#xff1a;<input type"text" name"sxtzh" id"zhanghao" value&q…

Opencv undefined reference to `cv::imread() Ubuntu編譯

Ubuntu下編譯一個C文件&#xff0c;C源程序中使用了opencv&#xff0c;opencv的安裝沒有問題&#xff0c;但是在編譯的過程中出現如下錯誤&#xff1a; undefined reference to cv::imread(std::string const&, int)undefined reference to cv::noArray()undefined referen…

深度學習目標檢測之 YOLO v1

這是繼 RCNN&#xff0c;fast-RCNN 和 faster-RCNN 之后&#xff0c;rbg&#xff08;RossGirshick&#xff09;針對DL目標檢測速度問題提出的另外一種框架。YOLO V1 增強版本GPU中能跑45fps&#xff0c;簡化版本155fps。 論文名&#xff1a; 《You Only Look Once&#xff1a;…

編程珠璣番外篇

1.Plan 9 的八卦 在 Windows 下喜歡用 FTP 的同學抱怨 Linux 下面沒有如 LeapFTP 那樣的方便的工具. 在蘋果下面用慣了 Cyberduck 的同學可能也會抱怨 Linux 下面使用 FTP 和 SFTP 是一件麻煩的事情. 其實一點都不麻煩, 因為在 LINUX 系統上壓根就不需要用 FTP. 為什么呢? 因…

BT下載原理分析

版權聲明&#xff1a;本文為博主原創文章&#xff0c;未經博主允許不得轉載。 BitTorrent協議。 BT全名為BitTorrent,是一個p2p軟件,你在下載download的同時&#xff0c;也在為其他用戶提供上傳upload&#xff0c;因為大家是“互相幫助”&#xff0c;所以不會隨著用戶數的增加而…

表格列求和_excel表格制作,Excel表格的基本操作,包含制作一個表格10方面的知識...

創建表格&#xff0c;插入與刪除一行一列或多行多行&#xff0c;一次移動一行一列或多行多列&#xff0c;拆分與合并單元格&#xff0c;單元格內換行&#xff0c;表格求和與求平均值是Excel表格的基本操作&#xff1b;除此之外&#xff0c;Excel表格的基本操作還包括調整行高列…

深度學習之 FPN (Feature Pyramid Networks)

論文題目&#xff1a;Feature Pyramid Networks for Object Detection論文鏈接&#xff1a;https://arxiv.org/abs/1612.03144論文代碼&#xff1a;Caffe版本 https://github.com/unsky/FPN 《Feature Pyramid Networks for Object Detection》這篇論文主要解決的問題是目標檢…

ISLR—第二章 Statistical Learning

Statistical Learning Y 和X的關系why estimate f 用來預測 預測的時候可以將f^當成一個black box來用&#xff0c;目的主要是預測對應x時候的y而不關系它們之間的關系。用來推斷 推斷的時候&#xff0c;f^不能是一個black box&#xff0c;因為我們想知道predictor和response之…

提高編程思想

虛函數和抽象函數有什么區別 虛函數是有代碼的并明確允許子類去覆蓋&#xff0c;但子類也可不覆蓋,就是說可以直接用&#xff0c;不用重寫 抽象函數是沒有代碼&#xff0c;子類繼承后一定要重寫 ****************************************************************** 在一…

python特效代碼_網頁愛心特效弱爆了,我讓你點擊網頁顯示所有python模塊!

點擊網頁特效上周寫了一篇文章快速搭建個人博客的教程文章&#xff1a;其中說到了一個點擊網頁出現愛心特效的插件 click_heart.js ,當然大家可能也見過其他博客上面&#xff0c;有點擊網頁出現類似 富強、民主、文明、和諧等等&#xff0c;關于代碼在這里不多贅述&#xff0c;…

Python 包管理之 poetry

poetry是一個Python虛擬環境和依賴管理的工具。poetry和pipenv類似&#xff0c;另外還提供了打包和發布的功能。 官方文檔&#xff1a;python-poetry.org/docs/ python項目部署&#xff1a;poetry管理本地環境,上線用docker poetry 安裝 poetry提供多種安裝方式&#xff0c…