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了? 树也是一个二分图,最大匹配=最 ...
随机推荐
- UVALive 5983 二分答案+dp
想了很久都想不出怎么dp,然后发现有些例子,如果你开始不确定起始值的话,是不能dp的,每种状态都有可能,所以只能二分一个答案,确定开始的val值,来dp了. #include <cstdio&g ...
- Java面向对象_对象一一对应关系和this关键字
一.打个比方,一个人有一个身份证号,一个身份证号对应一个人.一个英雄对应一把武器,一把武器对应一个英雄.生活中很多对象都存在一一对应关系,那么一一对应关系在代码中是如何实现的呢?举个例子,英雄和武器一 ...
- (转)rename命令详解
rename命令详解: 原文:http://www.cnblogs.com/amosli/p/3491649.html 对文件重命名是常用的操作之一,一般对单个文件的重命名用mv命令,如: amosl ...
- linux 跳过登陆修改用户密码
2017-02-11 20:41 6人阅读 评论(0) 收藏 编辑 删除 分类: Linux 版权声明:本文为博主原创文章,未经博主允许不得转载. Linux 系统默认的是有0 1 2 3 ...
- 进程的基础理论、并发(multiprocessing模块)
一.粘包优化方案 之前我们解决粘包的方式是用struct模块来制作一个报头,但是这个解决的方案是有漏洞的,当我们需要传送的文件大于2g时将会报错.所以我们今天将用json来制作报头. from soc ...
- 【extjs6学习笔记】1.16 初始: 关于主题
打开app.json,里面有主题设置 主题说明 theme-base 这个包是所有其他主题的基础主题,是唯一没有父主题的主题. 它包含Ext JS组件和布局正常工作绝对必需的最低限度的一组CSS规则. ...
- Flexbox与Grid属性比较
网格容器(container)属性 网格项目(item)属性 Flex容器(container)属性 Flex项目(item)属性
- pta 编程题16 Saving James Bond - Easy Version
其它pta数据结构编程题请参见:pta 题目 主要用到了深度优先搜索. #include <iostream> using namespace std; struct Vertex { i ...
- IOS storyboard(控件器的 生命周期)
@interface NJTwoViewController () @end @implementation NJTwoViewController // 当控制器的view加载完毕就调用 - (vo ...
- hdu-3790 最短路径问题---dijkstra两重权值
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3790 题目大意: 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到 ...