- 博客(0)
- 资源 (3)
- 收藏
- 关注
诸侯安置Empire
很久以前,有一个强大的帝国,它的国土成正方形状,如图2 2所示。
这个国家有若干诸侯。由于这些诸侯都曾立下赫赫战功,国王准备给他们每人一块封地
(正方形中的一格)。但是,这些诸侯又非常好战,当两个诸侯位于同一行或同一列时,他们就会开战。如下图2-3为n=3时的国土,阴影部分表示诸侯所处的位置。前两幅图中的诸侯
可以互相攻击,第三幅则不可以。
国王自然不愿意看到他的诸侯们互相开战,致使国家动荡不安。因此,他希望通过合理的安排诸侯所处的位置,使他们两两之间都不能攻击。
现在,给出正方形的边长n,以及需要封地的诸侯数量k,要求你求出所有可能的安置方案数。(n≤100,k≤2n2-2n+1)
由于方案数可能很多,你只需要输出方案数除以504的余数即可。
【输入】
仅一行,两个整数n和k,中间用一空格隔开
【输出】
一个整数,表示方案数除以504的余数。
【样例】
empire.in
2 2
empire.out
4
【样例说明】
四种安置方案如图2-4所示。注意:镜面和旋转的情况属于不同的方案。
2013-12-01
括号序列bracket(c)
括号序列
【问题描述】
定义如下规则序列(字符串):
1.空序列是规则序列;
2.如果S是规则序列,那么(S)和[s]也是规则序列;
3.如果A和B都是规则序列,那么AB也是规则序列。
例如,下面的字符串都是规则序列:
(),[],(()),([]),()[],()[()]
而以下几个则不是:
(,[,],)(,()),([()
现在,给你一些由‘(’,‘)’,‘[’,‘]’构成的序列,你要做的,是找出一个最短规则序列,使得给你的那个序列是你给出的规则序列的子列。(对于序列a1,a2,…,an和序列b1,b2,…,bn,如果存在一组下标1≤i1<i2<…<in≤m,使得aj=bj对一切1≤j≤n.成立,那么a1,a2,…,an就叫做b1,b2,bm的子列。
【输入】
输入文件仅一行,全部由‘(’,‘)’,‘[’,‘]’组成,没有其他字符,长度不超过100
【输出】
输出文件也仅有一行,全部由‘(’,‘)’,‘[’,‘]’组成,没有其他字符,把你找到的规则序列输出即可。因为规则序列不止一个,因此要求输出的的规则序列尽可能短。
【样例】
bracket.in
([()
bracket.out
()[]()
2013-12-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人