JZOJ 5459. 【NOIP2017提高A组冲刺11.7】密室
5459. 【NOIP2017提高A组冲刺11.7】密室
(File IO): input:room.in output:room.out
Description
密室中有N 个房间,初始时,小X 在1 号房间,而出口在N 号房间。
密室的每一个房间中可能有着一些钥匙和一些传送门,一个传送门会单向地创造一条从房间X 到房间Y 的通道。另外,想要通过某个传送门,就必须具备一些种类的钥匙(每种钥匙都要有才能通过)。幸运的是,钥匙在打开传送门的封印后,并不会消失。
然而,通过密室的传送门需要耗费大量的时间,因此,小X 希望通过尽可能少的传送门到达出口,你能告诉小X 这个数值吗?
另外,小X 有可能不能逃出这个密室,如果是这样,请输出"No Solution"。
Input
接下来N 行,每行K 个0 或1,若第i 个数为1,则表示该房间内有第i 种钥匙,若第i 个数为0,则表示该房间内没有第i 种钥匙。
接下来M 行,每行先读入两个整数X,Y,表示该传送门是建立在X 号房间,通向Y 号房间的,再读入K 个0 或1,若第i 个数为1,则表示通过该传送门需要i 种钥匙,若第i 个数为0,则表示通过该传送门不需要第i 种钥匙。
Output
Sample Input
3 3 2
1 0
0 1
0 0
1 3 1 1
1 2 1 0
2 3 1 1
Sample Output
2
Data Constraint
aaarticlea/png;base64,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" alt=" " />
#include <cstdio>
#include <iostream>
#include <cstring>
#include <cmath>
#include <queue>
#include <algorithm>
#define N 5007
using namespace std;
int n, m, k, pre[N], dis[N][], ls[N];
int mi[], tot;
struct edge
{
int to, next, pre;
}e[N * ];
int list[N * ][]; void add(int x, int y, int z)
{
e[++tot].to = y;
e[tot].next = ls[x];
e[tot].pre = z;
ls[x] = tot;
} void init()
{
scanf("%d%d%d", &n, &m, &k);
for (int i = ; i <= n; i++)
{
int x;
pre[i] = ;
for (int j = ; j <= k; j++)
{
scanf("%d", &x);
pre[i] += x * mi[j];
}
} for (int i = ; i <= m; i++)
{
int x, y, z;
scanf("%d%d", &x, &y);
int p = ;
for (int j = ; j <= k; j++)
scanf("%d", &z), p += mi[j] * z;
add(x, y, p);
}
} void pre_work()
{
mi[] = ;
for (int i = ; i <= ; i++)
mi[i] = mi[i - ] * ; } void work()
{
memset(dis, 0x7f7f7f7f, sizeof(dis));
dis[][pre[]] = ;
list[][] = ;
list[][] = pre[];
int head = , tail = ;
while (head < tail)
{
head++;
int now = list[head][];
int p = list[head][];
for (int i = ls[now]; i; i = e[i].next)
{
if ((p | e[i].pre) != p) continue;
int net = p | pre[e[i].to];
if (dis[e[i].to][net] == 0x7f7f7f7f)
{
dis[e[i].to][net] = dis[now][p] + ;
list[++tail][] = e[i].to;
list[tail][] = net;
}
}
}
int ans = 0x7f7f7f7f;
for (int i = ; i <= mi[k + ] - ; i++)
ans = min(ans, dis[n][i]);
if (ans != 0x7f7f7f7f) printf("%d", ans);
else printf("No Solution");
} int main()
{
//freopen("room.in", "r", stdin);
//freopen("room.out", "w", stdout);
pre_work();
init();
work();
}
JZOJ 5459. 【NOIP2017提高A组冲刺11.7】密室的更多相关文章
- [JZOJ 5465] [NOIP2017提高A组冲刺11.9] 道路重建 解题报告 (e-dcc+树的直径)
题目链接: http://172.16.0.132/senior/#main/show/5465 题目: 小X所居住的X国共有n个城市,有m条无向道路将其连接.作为一个统一的国家,X 城的任意两个城市 ...
- JZOJ 5462. 【NOIP2017提高A组冲刺11.8】好文章
5462. [NOIP2017提高A组冲刺11.8]好文章 (File IO): input:article.in output:article.out Time Limits: 1000 ms M ...
- JZOJ 5456. 【NOIP2017提高A组冲刺11.6】奇怪的队列
5456. [NOIP2017提高A组冲刺11.6]奇怪的队列 (File IO): input:queue.in output:queue.out Time Limits: 1000 ms Mem ...
- JZOJ 5455. 【NOIP2017提高A组冲刺11.6】拆网线
455. [NOIP2017提高A组冲刺11.6]拆网线 (File IO): input:tree.in output:tree.out Time Limits: 1000 ms Memory L ...
- JZOJ 5461. 【NOIP2017提高A组冲刺11.8】购物
5461. [NOIP2017提高A组冲刺11.8]购物 (File IO): input:shopping.in output:shopping.out Time Limits: 1000 ms ...
- 5458. 【NOIP2017提高A组冲刺11.7】质数
5458. [NOIP2017提高A组冲刺11.7]质数 (File IO): input:prime.in output:prime.out Time Limits: 1000 ms Memory ...
- [JZOJ5455]【NOIP2017提高A组冲刺11.6】拆网线
Description 企鹅国的网吧们之间由网线互相连接,形成一棵树的结构.现在由于冬天到了,供暖部门缺少燃料,于是他们决定去拆一些网线来做燃料.但是现在有K只企鹅要上网和别人联机游戏,所以他们需要把 ...
- 【NOIP2017提高A组冲刺11.8】好文章
#include<algorithm> #include<iostream> #include<cstring> #include<cstdio> us ...
- 【NOIP2017提高A组冲刺11.6】拆网线
和syq大兄弟吐槽题目不小心yy出了正解.. 最优的选法就是选两个两个相互独立的,欸这不就是最大匹配吗?那多的企鹅就新加一条边呗?不够的就除以2上取整呗? 欸?AC了? 树也是一个二分图,最大匹配=最 ...
随机推荐
- Vue provide/inject 部分源码分析 实现响应式数据更新
provide/inject 数据响应式更新的坑及源码解析 下面是我自己曾经遇到 一个问题,直接以自己QA的形式来写吧 自问自答了,需要的同学也可以直接访问segmentfault地址 官网给出实例, ...
- WPF使用Aspose.Words导出Word文档
一.创建Word文档模板 分析需要导出的word文档,将固定的内容和由程序生成的内容分开; 创建一个word(例如:Template.doc)文档,将固定的内容按照一定的格式写入当前文档中; 打开Te ...
- html5的使用
<!DOCTYPE html><html lang="en"><head> <meta charest="UTF-8" ...
- Spring cloud Eureka 服务治理(搭建服务注册中心)
服务之类是微服务架构中最为核心的基础模块,它主要用来实现各个微服务实例的自动化注册和发现. 1. 服务注册 在服务治理框架中,通常会构建一个注册中心,每个服务单元向注册中心登记自己提供的服务,将主机. ...
- 为什么要使用Vuex?
为什么要使用Vuex? 1. 假如不使用 1.1 父子组件依赖同一个state 1.2 兄弟组件依赖同一个state 2. 用了Vuex之后 3. 方便记忆和理解
- echarts使用中的那些事儿(一)
近来由于有几个小项目要用到echarts里的一些图,不得不使用,可是要完全按照自己的意愿来,要对它有些了解,要翻阅资料,遂有以下小结: 1.最开始第一步是把数据调出来就行,能在图上显示就成,以下是最开 ...
- intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)用法
如果已经启动了四个Activity:A,B,C和D.在D Activity里,我们要跳到B Activity,同时希望C finish掉,可以在startActivity(intent)里的inten ...
- HTML和CSS中一些有趣的
CSS Rese http://yui.yahooapis.com/3.18.1/build/cssreset/cssreset-min.css <link rel="styleshe ...
- 慎用python的pop和remove方法
申明:转载请注明出处!!! Python关于删除list中的某个元素,一般有两种方法,pop()和remove(). 如果删除单个元素,使用基本没有什么问题,具体如下. 1.pop()方法,传递的是待 ...
- git版本管理工具 标签(Tag) / 版本回退 / 分支的简单使用
a.标签 标签,可以使用这个功能来标记发布结点. 举个例子, 假如我们的项目版本目前是1.2版本, 上级要求这个版本要在半个月后再进行上传至Appstore, 并要求我们未来的半个月内,去写1.3版本 ...