小米 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 星和 nn 个其他的 G 类星组成,并且星系中正好有 nn 个 G 类星的轨道。我们将这些 G 类星编号为 G_1...G_nG1...Gn ,将它们最开始所在的轨道编号为 C_1...C_nC1...Cn。
SGCollin 通过观察发现,不同轨道之间可能会有能量桥存在,每一对轨道之间至多只可能存在一个能量桥。能量桥也有不同的形式,共有 kk 种,并且其形式与所连接的轨道无关。
SGCollin 还发现 S 星系并不稳定, G 类星随时会发生关于 S 星的无序位移,在这之中每个 G 类星所在的轨道都可能发生变化。具体的说,每次无序位移会进行如下操作:
- 保留原来的轨道,以及他们之间的能量桥。
- 随机出一个 nn 的排列 PP ,当前在第 ii 号轨道的 G 类星会位移到第 P_iPi 号轨道上。
SGCollin 认为星系的不同状态之间美妙程度是各不相同的,而状态由能量桥的分布决定。
具体地说,两个状态美妙程度是相同的,当且仅当一个状态(称另一个状态为目标状态)发生一次无序位移后,可能会满足
- 新状态里的能量桥数与目标状态相同。
- 新状态里的星球,都能和目标状态里的星球建立某一个一一对应的关系。
- 满足上一条对应关系的星球对之间,如果目标状态两者所在轨道之间有能量桥,那么新状态两者所在轨道之间也要有对应种类的能量桥。
但是现在 SGCollin 的观测设备太差啦,并不能看清楚能量桥的分布。他想知道,一共可能有多少个不同的美妙程度呢?由于这个数量太多,所以你只需要告诉他个数对 23332333 取模的答案。
输入
多组输入。
第 1 个正整数 TT ,代表数据组数;
接下来为 T 组数据,每组包含 2 个由空格隔开的数 n,kn,k ,分别代表 G 类星的个数,以及能量桥的种类数。组与组之间以空格分隔。
输出
输出共 TT 个整数,其中第 ii 个整数为第 ii 组数据的答案,以空格分隔。
输入样例
1 3 3
输出样例
20