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

然后每个点到下一天连$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. ucos-ii核心算法分析(转)

    μC/OS-Ⅱ是一种免费公开源代码.结构小巧.具有可剥夺实时内核的实时操作系统.其 内核提供任务调度与管理.时间管理.任务间同步与通信.内存管理和中断服务等功能.适合小型控制系统,具有执行效率高.占用 ...

  2. 《队长说得队》第八次团队作业Alpha冲刺

    项目 内容 这个作业属于哪个课程 >>2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 >>实验十二 团队作业8:软件测试与ALPHA冲刺 团队名称 ...

  3. Python——三目运算符

    一.三目运算符 1.if语句三目运算符语法格式 Python可以通过if'语句来实现三目运算符的功能,因此可以把这种if语句当做三目运算符,具体语法格式如下: 返回True执行 if 表达式 else ...

  4. Dojo的declare接口

    declare(classname,[],{}) declare的第一个参数是可选的,代表类的名称 declare的第二个参数代表类的继承关系,比如继承哪一个父类,可以看到:第二个参数是一个数组,所以 ...

  5. LiteIDE 错误: go build xxxxxx: no non-test Go files in xxxx

    问题 c:/go/bin/go.exe build [C:/Users/Administrator/Desktop/go] go build _/C_/Users/Administrator/Desk ...

  6. iOS开发之WIFI,3G/4G两种网络同时使用技巧

    最近遇到一个比较奇葩的需求:App与硬件通过WiFi LAN通信, 同时App需要与服务器通过3G/4G WAN通信,如下图: 众所周知,手机同时打开WiFi和3G时候,会优先走WiFi.这个该如何实 ...

  7. git 指令记录

    由于之前一直用svn 用git也是用图形化的工具 还是要了解一下git指令 因为都是版本控制工具 有很多相似之处 所以理解起来也比较轻松 仓库: github上面的项目 工作目录下面的所有文件都不外乎 ...

  8. ipmitool的使用

    https://www.ibm.com/developerworks/cn/linux/l-ipmi/index.html

  9. 【Redis】DENIED Redis is running in protected mode

    .修改redis服务器的配置文件 vi redis.conf 注释以下绑定的主机地址 # bind 127.0.0.1 .修改redis服务器的参数配置 修改redis的守护进程为no ,不启用 &g ...

  10. EditPlus 比较完整的快捷键记录

    FileFtpUpload Ctrl+Shift+S 上传文件到FTP 服务器 FileNew Ctrl+N 新建普通的文本文档 FileNewHtml Ctrl+Shift+N 创建一个空白的 HT ...