解析

容易想到对每个时间的空间站都建一个点。
然后发现循环问题很难搞。
然后我就一直想从 lcm 下文章,结果 lcm 可以到3e5,于是就寄了…
qwq

注意到本题的数据范围极小!
那个3e5云云是不可能跑出来的,事实上,答案不可能超过 n k nk nk。(最差也就是每次都只有一个人乘一班环游世界车摆烂)

所以,我们可以更加暴力的做。
枚举当前时间
然后就好办了,每次把当前时间下的空间站和星球建出来,暴力连边即可。
设答案为 w w w,那么点数为 O ( w n ) O(wn) O(wn),边数为 O ( w m ) O(wm) O(wm)。
跑的飞快。

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define debug(...) fprintf(stderr,__VA_ARGS__)
#define ok debug("OK\n")
inline ll read(){ll x(0),f(1);char c=getchar();while(!isdigit(c)){if(c=='-') f=-1;c=getchar();}while(isdigit(c)){x=(x<<1)+(x<<3)+c-'0';c=getchar();}return x*f;
}
const int N=2e5+100;
const int M=1e6+100;
const int inf=1e9;int n,m;int s,t,tot;
struct node{int to,nxt,cap;
}p[N<<1];
int fi[N],cur[N],cnt;
inline void addline(int x,int y,int c){p[++cnt]=(node){y,fi[x],c};fi[x]=cnt;
}
inline void add(int x,int y,int c){addline(x,y,c);addline(y,x,0);return;
}
int bel[N],q[N],st,ed;
int bfs(){fill(bel,bel+1+tot,0);q[st=ed=1]=s;bel[s]=1;while(st<=ed){int now=q[st++];for(int i=cur[now]=fi[now];~i;i=p[i].nxt){          int to=p[i].to;if(!p[i].cap||bel[to]) continue;bel[to]=bel[now]+1;q[++ed]=to;}}return bel[t];
}
int dfs(int x,int lim){if(x==t||lim==0) return lim;int res(0);for(int &i=cur[x];~i;i=p[i].nxt){int to=p[i].to;if(bel[to]!=bel[x]+1) continue;int add=dfs(to,min(lim,p[i].cap));res+=add;lim-=add;p[i].cap-=add;p[i^1].cap+=add;if(!lim) break;}if(!res) bel[x]=-1;return res;
}
ll flow;
void dinic(){ll tmp=0;while(bfs()){while((tmp=dfs(s,2e9))) flow+=tmp;}return;
}int id[16][1050],k;
int num[25],x[25][16],h[25];
void build(int tim){for(int i=1;i<=n;i++){id[i][tim]=++tot;if(tim) add(id[i][tim-1],id[i][tim],inf);}add(s,id[2][tim],inf);add(id[1][tim],t,inf);if(tim){for(int i=1;i<=m;i++){int pl=(tim-1)%num[i]+1;//printf("add: (%d %d)->(%d %d) cap=%d\n",//x[i][pl],tim-1,x[i][pl%num[i]+1],tim,h[i]);add(id[x[i][pl]][tim-1],id[x[i][pl%num[i]+1]][tim],h[i]);}}return;
}
signed main(){#ifndef ONLINE_JUDGE//freopen("a.in","r",stdin);//freopen("a.out","w",stdout);#endifmemset(fi,-1,sizeof(fi));cnt=-1;n=read()+2;m=read();k=read();s=++tot;t=++tot;for(int i=1;i<=m;i++){h[i]=read();num[i]=read();for(int j=1;j<=num[i];j++) x[i][j]=read()+2;}build(0);for(int tim=1;tim<1000;tim++){build(tim);dinic();if(flow>=k){printf("%d\n",tim);return 0;}}//printf("%d\n",flow);printf("0");return 0;
}
/*
0 1 1
1 2 0 -1
*/

洛谷P2754:[CTSC1999]家园 / 星际转移问题(网络流)相关推荐

  1. P2754 [CTSC1999]家园 / 星际转移问题(网络流)

    P2754 [CTSC1999]家园 / 星际转移问题 经典问题,利用分层图来跑网络流.

  2. 洛谷 - P2754 [CTSC1999]家园(最大流+并查集)

    题目链接:点击查看 题目大意:现在有k个人类需要从地球上转移到月球上去,现在有n个宇宙中转站,以及m个飞船周期性运载,每个飞船的载客都有一定的上限,但中转站的载客没有上限,现在给出每个飞船的路线,问最 ...

  3. 家园 / 星际转移问题(洛谷P2754 分层图+最大流)

    再一次感觉网络流太神奇了qwq 题目链接:[星际转移问题](P4009 汽车加油行驶问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)) 受到之前那道[汽车加油行驶问题](P400 ...

  4. P2754 [CTSC1999]家园

    \(\color{#0066ff}{题目描述}\) 由于人类对自然资源的消耗,人们意识到大约在 2300 年之后,地球就不能再居住了.于是在月球上建立了新的绿地,以便在需要时移民.令人意想不到的是,2 ...

  5. P2754 [CTSC1999] 家园

    来一篇 \(Pascal\). 很显然分层之后就可以搞最大流了. 如果蒟蒻没有想错的话是这样子的 : 之前把 \(matrix[i,-1]\) 搞错了改了 \(1 h\).把 \(ISAP\) 换成 ...

  6. YBTOJ危桥通行洛谷P3163:危桥通行(网络流)

    文章目录 题目描述 解析 代码 题目描述 Alice 和 Bob 居住在一个由 NN 座岛屿组成的国家,岛屿被编号为 00 到 N-1N−1.某些岛屿之间有桥相连,桥上的道路是双向的,但一次只能供一人 ...

  7. 【洛谷 - P1231 】教辅的组成(网络流最大流,拆点)

    题干: 题目描述 蒟蒻HansBug在一本语文书里面发现了一本答案,然而他却明明记得这书应该还包含一份练习题.然而出现在他眼前的书多得数不胜数,其中有书,有答案,有练习册.已知一个完整的书册均应该包含 ...

  8. 【洛谷P3376】网络最大流【网络流】

    分析 网络流算法本身是之前学过的,今天拿出来复习打个板子. 最原始的思路应该是搜索每一条路,每次进行增广的操作,知道不能增广为止.显然,这种思路复杂度比较高. 如何进行优化?就是dinic算法.上面那 ...

  9. 洛谷——网络流24题

    P2756 飞行员配对方案问题 P2762 太空飞行计划问题 P4014 分配问题 P2774 方格取数问题 P4009 汽车加油行驶问题 P4015 运输问题 P3254 圆桌问题 P2763 试题 ...

最新文章

  1. Ubuntu 14.04 64bit上安装LNMP环境
  2. bootstrapTable语言包设置
  3. angular面试题及答案_关于最流行的Angular问题的StackOverflow上的48个答案
  4. 大家觉得创业需要些什么
  5. 快捷配置mysql_windows下的mysql的快捷安装方法和简单配置
  6. SAP License:SAP创建中国版免费在线公开课程openSAP
  7. 汽车发动机电子控制技术
  8. AudioTunes FLAC, APE, WMA Converter for Mac(音频转换工具)
  9. 问题解决丨对不起,小米路由器出现网络连接问题无法打开网页
  10. 已解决 There are unfinished transactions remaining. You might consider running yum-complete-transaction
  11. 洛谷-2028 龙兄摘苹果
  12. 加油站微信小程序的设计与实现-计算机毕业设计
  13. Django之Form表单验证组件Tyrion
  14. Jenkins+Newman+Postman生成接口自动化测试报告
  15. photoshop导出png发生未知错误的解决方案,ps导出发生未知错误怎么解决
  16. idea运行报路径不存在
  17. Qt中的unicode转换
  18. 记录SEO寄生虫处理过程
  19. 【工业互联网】周剑:工业互联网平台作用机理和发展路径
  20. 西门子plm_一个月内接连收购两家企业,西门子不断加码工业软件,巨头的数字化决心...

热门文章

  1. [LinkerScript.18] SECTION命令: Input Section Description : 输入section的基础
  2. [排序不等式] 排队打水(排序不等式+贪心)
  3. asterisk:No compatible codecs, not accepting this offer!
  4. 动态窗口算法(DWA)
  5. GO语言下载、安装、配置
  6. python实现给定电影英文名,在猫眼上爬到中文名和票房
  7. 力扣589.N叉树的前序遍历
  8. tf.nn.sampled_softmax_loss用法详解
  9. Linux中的几种定时器
  10. Android之 双屏异显控制