机房水题欢乐赛 2016-04-26 上午

23 篇文章 0 订阅
16 篇文章 0 订阅

Command

【题目描述】

我们现在来讨论一种机器的抽象模型。这种机器有一个有限的状态集S={s0,s1,s2..sn}
和一个有限的指令集C={c0,c1,c2…cm} 。机器在任意时刻都处于某
一种状态s∈S 。同时,机器还有一个转移函数f : S x C->S ,表示机器在当前状态下接
到某个指令之后会转移到的状态,亦即机器在状态s下接到指令c后状态会变成f (s,c)。
现在对于一个机器的实例,你需要计算一个最短的指令序列,使得对于任意一个状态s ,按照顺序经过序列中的所有指令之后机器一定会处于状态s0 。

【输入描述】

第一行:|S|和|C|
接下来|S|行,每行|C|个整数。若输入文件中的行和列均从1开始标号,那么第i行j列的数k则表示为f( Si-2 , Cj-1 ) = Sk (0<=k<|S|)

【输出描述】

输出你求得的最短指令序列。你需要将指令的下标连续输出,并且输出下标的十六进制
值,表示法中的字母用小写字母表示。若最短的序列不唯一,输出任一个即可。若这样的序
列不存在,输出impossible。

【输入样例】

3 6
0 2 2 0 0 2
1 1 0 0 0 1
1 0 1 2 2 2

【输出样例】

03

【样例解释】

对于s0, f(s0,c0)=s0, f(s0,c3)=s0
对于s1, f(s1,c0)=s1,f(s1,c3)=s0
对于s2,f(s2,c0)=s1,f(s1,c3)=s0

【数据约定】

对于全部数据保证|S|,|C|<=16,输入数据保证合法

Solution

bitset压状态,bfs一下就好了。

Critical Network Lines

net,3 sec,64mb
给出一个无向连通图,即在任一个点对间存在路径。有的点提供服务a, 有的点提供服务b 。同一个点可能有两种服务类型。每个点必须与提供2种服务的点连通。如果一个边断掉,就可能出现有些点不能被服务到,那么这条边就称为关键边。你的任务是找出关键边数量以及每条关键边。

输入

第一行是整数N,M,K,L (1<=N<=100000, 1<=M<=1000000, 1<=K<=N,1<=L<=N)。N是图节点数;M是边数;k是提供服务a的点个数;L是提供服务b的点个数。第二行有K个数,每个数表示提供服务a的节点。第三行有L个数,每个数表示提供服务b的节点。接下来M行,每行两个不同的数,他们表示一条边的两个节点。

输出

第一行是一个整数S,它是关键边的数量。接下来S行,以任意顺序输出这些关键边。

样例输入

9 10 3 4
2 4 5
4 9 8 3
1 2
4 1
2 3
4 2
1 5
5 6
6 7
6 8
7 9
8 7

样例输出

3
3 2
5 6
7 9

Solution

关建边肯定是桥,Tarjan搞一下就好了。
A和B分开搞。

Game

JSOI 2009
NOI 2011 Day2 T3

待续。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值