直接把每一个点,每一天拆成一个点。

然后每个点到下一天连$inf$的边。

然后把飞船的路径用容量为飞船容量的边连接。

然后跑网络流判断是否满流。

#include <queue>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std; #define F(i,j,k) for (int i=j;i<=k;++i)
#define D(i,j,k) for (int i=j;i>=k;--i)
#define inf 0x3f3f3f3f
#define maxn 500005 int n,m,k,p[25],flag=0,S=0,T=maxn-1,ans=0;
int sta[25][25],num[25];
int h[maxn],to[maxn],ne[maxn],fl[maxn],fr[maxn],en=0;
int hash[25][500],cnt=0,dis[maxn];
queue <int> q; void add(int a,int b,int c)
{
to[en]=b;fr[en]=a;ne[en]=h[a];fl[en]=c;h[a]=en++;
to[en]=a;fr[en]=b;ne[en]=h[b];fl[en]=0;h[b]=en++;
} bool tell()
{
memset(dis,-1,sizeof dis);
while (!q.empty()) q.pop();
dis[S]=0;q.push(S);
while (!q.empty())
{
int x=q.front();q.pop();
for (int i=h[x];i>=0;i=ne[i])
{
if (fl[i]>0&&dis[to[i]]==-1)
{
dis[to[i]]=dis[x]+1;
q.push(to[i]);
}
}
}
if (dis[T]==-1) return false;
return true;
} int zeng(int k,int now)
{
if (k==T) return now;
int r=0;
for (int i=h[k];i>=0&&now>r;i=ne[i])
if (dis[k]+1==dis[to[i]]&&fl[i]>0)
{
int t=zeng(to[i],min(now-r,fl[i]));
fl[i]-=t;fl[i^1]+=t;r+=t;
}
if (!r) dis[k]=-1;
return r;
} int main()
{
memset(h,-1,sizeof h);
scanf("%d%d%d",&n,&m,&k);
F(i,1,m)
{
scanf("%d",&p[i]);
scanf("%d",&num[i]);
F(j,0,num[i]-1)
{
scanf("%d",&sta[i][j]);
if (sta[i][j]==-1) sta[i][j]=n+1;
}
}
F(i,0,n+1)
F(j,0,205)
hash[i][j]=++cnt;
add(S,hash[0][0],k);
add(hash[n+1][0],T,inf);
for (int z=0;z<=200;++z)
{
int tmp;
F(i,0,n+1)
add(hash[i][z],hash[i][z+1],inf);
F(i,1,m)
add(hash[sta[i][z%num[i]]][z],hash[sta[i][(z+1)%num[i]]][z+1],p[i]);
add(hash[n+1][z+1],T,inf);
while (tell()) while (tmp=zeng(S,inf)) ans+=tmp;
if (ans==k)
{
flag=1;
printf("%d\n",z+1);
break;
}
}
if (!flag) printf("%d\n",0);
}

  

CTSC 1999 家园 【网络流24题】星际转移的更多相关文章

  1. [CTSC1999][网络流24题] 星际转移

    36. [CTSC1999][网络流24题] 星际转移 ★★★☆   输入文件:home.in   输出文件:home.out   简单对比时间限制:1 s   内存限制:128 MB «问题描述: ...

  2. 【网络流24题】 No.12 软件补丁问题(最小转移代价 最短路)

    [题意] T 公司发现其研制的一个软件中有 n 个错误, 随即为该软件发放了一批共 m 个补丁程序. 每一个补丁程序都有其特定的适用环境, 某个补丁只有在软件中包含某些错误而同时又不包含另一些错误时才 ...

  3. 【线性规划与网络流 24题】已完成(3道题因为某些奇怪的原因被抛弃了QAQ)

    写在前面:SDOI2016 Round1滚粗后蒟蒻开始做网络流来自我拯救(2016-04-11再过几天就要考先修课,现在做网络流24题貌似没什么用←退役节奏) 做的题目将附上日期,见证我龟速刷题. 1 ...

  4. 【算法】【网络流24题】巨坑待填(成功TJ,有时间再填)

    ------------------------------------------------------------------------------------ 17/24 --------- ...

  5. 网络流基础&网络流24题

    网络最大流 dinic+当前弧优化. const int N=10007,M=100007,inf=1e9; int s,t,head[N],ver[M],edge[M],Next[M],tot=1, ...

  6. Luogu 2764 最小路径覆盖问题 / Libre 6002 「网络流 24 题」最小路径覆盖 (网络流,最大流)

    Luogu 2764 最小路径覆盖问题 / Libre 6002 「网络流 24 题」最小路径覆盖 (网络流,最大流) Description 给定有向图G=(V,E).设P是G的一个简单路(顶点不相 ...

  7. COGS743. [网络流24题] 最长k可重区间集

    743. [网络流24题] 最长k可重区间集 ★★★   输入文件:interv.in   输出文件:interv.out   简单对比时间限制:1 s   内存限制:128 MB «问题描述: «编 ...

  8. Cogs 14. [网络流24题] 搭配飞行员

    这道题其实蛮好想的,因为分为正,副飞行员.所以就把正飞行员当作Boy,副飞行员当作Girl.然后做Hungry即可. #include<bits/stdc++.h> using names ...

  9. cogs_14_搭配飞行员_(二分图匹配+最大流,网络流24题#01)

    描述 http://cojs.tk/cogs/problem/problem.php?pid=14 有一些正飞行员和副飞行员,给出每个正飞行员可以和哪些副飞行员一起飞.一架飞机上必须一正一副,求最多多 ...

  10. BZOJ_1221_ [HNOI2001]_软件开发(最小费用流,网络流24题#10)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1221 n天,每天需要r个毛巾,用完以后可以洗,要么花fa洗a天,要么花fb洗b天,毛巾不够了可 ...

随机推荐

  1. 二、antd pro 删除eslint检测

    删除package.json 里 " pre-commit": "npm run lint-staged" 这个对象就可以.

  2. BCB:UTF8Encode、AnsiToUtf8

    UTF8Encode: Call Utf8Encode to convert a Unicode string to UTF-8. WS is the Unicode string to conver ...

  3. oracle没有监听和监听程序无法找到适用于客户机连接的例程

    1.无监听,可以尝试下以下几种办法: 1)在net manager中重新配置监听.我的net manager监听点开不了,把ADMIN下的listener.ora删掉再去打开试试. 2)cmd中输入n ...

  4. vue跨域处理(vue项目中baseUrl设置问题)

    1.开发环境: 2.生产环境: 然后 const instance = axios.create({ baseURL: process.env.API })

  5. 使用vs2013打开VS2015的工程文件的解决方案(适用于大多数vs低版本打开高版本)

    前言:重装系统前我使用的是vs2015(有点装*),由于使用2015实在在班上太另类了, 导致我想在其他同学的vs下看一看我写的代码都无法达成! 而且最关键的是交作业的时候,老师的2013也没有办法打 ...

  6. EXC_BAD_ACCESS调试

    有时候,你会遇到由EXCBADACCESS造成崩溃. 这篇文件会告诉你什么是EXCBADACCESS,以及它产生的原因.我还会提供一些EXCBADACCESS错误的解决方案. 1. 什么是 EXCBA ...

  7. 关于C与C++的区别

    笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解 ...

  8. VIM 编辑器 -使用详解记录

    1.什么是 vim? Vim是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但 ...

  9. jenkins+svn+pipeline+kubernetes部署java应用(二)

    在jenkins中只能通过http的方式获取svn的数据,所以需要配置svn的http访问方式 一.安装http服务端和mod_dav_svn插件 由于Subversion需要版本化的控制,因此标准的 ...

  10. windows server 服务器 环境配置

    自动备份 xcopy d:\web\zhiku\*.* d:\bak\web\zhiku\%date:~,4%%date:~5,2%%date:~8,2%\ /S /I