小米 OJ 编程比赛 01 月常规赛

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiao__jia__jia/article/details/86651199

                              小米 OJ 编程比赛 01 月常规赛
 

    一、灯

描述

一个屋子有 n 个开关控制着 n 盏灯,但奇怪的是,每个开关对应的不是一盏灯,而是 n-1 盏灯,每次按下这个开关,其对应的 n-1 盏灯就会由亮变灭,或者由灭变亮。保证不会有两个开关控制同样的 n-1 盏灯。

现在刘同学想把灯全部开好,但是这些灯一开始的状态非常乱,刘同学想知道最少需要按多少次开关才能使所有灯全部亮起。

输入

单组数据输入,每组数据一行,两个数 n,l 分别代表灯的数量、最开始时亮着的灯的数量(1<l<n<10000000000)。

输出

每组数据输出一个数,即能使所有灯全部亮起的最少的按开关的次数,如果无法做到灯全部亮起,输出“Impossible”

输入样例

4 2

输出样例

2
 


二、殊途同归

描述

在小米之城,有 nn 个小镇(从 1 开始编号),这些小镇通过 mm 条双向火车铁轨相连,当然某些小镇之间也有公路相连。为了保证每两个小镇之间的人可以方便地互访,市长米小兔就在那些没有铁轨连接的小镇间建造了公路。在两个直接通过公路或铁路相连的小镇之间移动,需要花费 1 小时。火车只能走铁路,汽车只能走公路。

现在有一辆火车和一辆汽车同时从小镇 1 出发,各自前往小镇 nn。但是,他们中途不能同时停在同一个小镇(但是可以同时停在小镇 nn)。

现在请你来为火车和汽车分别设计一条线路,使火车和汽车尽可能快地到达小镇 nn(即要求他们中最后到达小镇 nn 的时间最短)。

所有的公路或铁路可以被多次使用,求火车、汽车中到达小镇时间最小的一个。(火车和汽车可以同时到达小镇 nn,也可以先后到达。)

输入

单组测试数据。

首先有 2 个整数 nn 和 mm (2 \le n \le 400, 0 \le m \le n \cdot \frac{n-1}{2}2≤n≤400,0≤m≤n⋅2n−1​) ,分别表示小镇的数目和铁轨的数目;

接下来的 mm 对数字,每对由两个整数 uu 和 vv 构成,表示小镇 uu 和小镇 vv 之间有一条铁路。(1 \le u,v \le n, u \neq v1≤u,v≤n,u̸​=v)。

输入中保证两个小镇之间最多有一条铁路直接相连。

输出

输出一个整数,表示答案,如果没有合法的路线规划,输出 -1.

输入样例

4 2 1 3 3 4

输出样例

2



三、星空

描述

SGCollin 是一个喜欢看星星的男孩子。

S 星系由一个中心天体 S 星和 n​n​ 个其他的 G 类星组成,并且星系中正好有 n​n​ 个 G 类星的轨道。我们将这些 G 类星编号为 G_1...G_n​G1​...Gn​​ ,将它们最开始所在的轨道编号为 C_1...C_n​C1​...Cn​​。

SGCollin 通过观察发现,不同轨道之间可能会有能量桥存在,每一对轨道之间至多只可能存在一个能量桥。能量桥也有不同的形式,共有 kk 种,并且其形式与所连接的轨道无关。

SGCollin 还发现 S 星系并不稳定, G 类星随时会发生关于 S 星的无序位移,在这之中每个 G 类星所在的轨道都可能发生变化。具体的说,每次无序位移会进行如下操作:

  • 保留原来的轨道,以及他们之间的能量桥。
  • 随机出一个 nn 的排列 PP ,当前在第 ii 号轨道的 G 类星会位移到第 P_iPi​ 号轨道上。

SGCollin 认为星系的不同状态之间美妙程度是各不相同的,而状态由能量桥的分布决定。

具体地说,两个状态美妙程度是相同的,当且仅当一个状态(称另一个状态为目标状态)发生一次无序位移后,可能会满足

  • 新状态里的能量桥数与目标状态相同。
  • 新状态里的星球,都能和目标状态里的星球建立某一个一一对应的关系。
  • 满足上一条对应关系的星球对之间,如果目标状态两者所在轨道之间有能量桥,那么新状态两者所在轨道之间也要有对应种类的能量桥。

但是现在 SGCollin 的观测设备太差啦,并不能看清楚能量桥的分布。他想知道,一共可能有多少个不同的美妙程度呢?由于这个数量太多,所以你只需要告诉他个数对 23332333 取模的答案。

输入

多组输入。

第 1 个正整数 T​T​ ,代表数据组数;

接下来为 T 组数据,每组包含 2 个由空格隔开的数 n,kn,k ,分别代表 G 类星的个数,以及能量桥的种类数。组与组之间以空格分隔。

输出

输出共 TT 个整数,其中第 ii 个整数为第 i​i​ 组数据的答案,以空格分隔。

输入样例

1 3 3

输出样例

20

猜你喜欢

转载自blog.csdn.net/xiao__jia__jia/article/details/86651199