- Yukicoder 376
有一个正方体,你想要将这个正方形 n 等分,得到 n 个相同的长方体。
你每次可以用一个平行于这个正方体的一个平面的面进行切割,问最少要切割几次,最多要切割几次。
1≤n≤1014
- Yukicoder 334
一个三元组 (a,b,c) 是凹凸三元组,如果 a,b,c 两两不等并且 b 是最大的或是最小的。
小明和小红在玩一个游戏。一开始 n 个数 a0,a1,...,an−1,小明先操作,两人轮流操作,每次操作按规则取走三个数。轮到谁操作时,如果不能再取了,他就输了。一次操作的规则是这样的:每次可以从当前的数中取走三个数 ax,ay,az,其中 0≤x<y<z<n,使得 (ax,ay,az) 是一个凹凸三元组。这里,取走的意思是从现有的数中拿走,也就是这些数消失了。小明和小红都想赢,他们都会按照最优策略操作。
小明想知道怎么能赢,他请你帮忙。你需要计算第一次取的时候应该取哪三个数,按照从小到大的顺序输出三个数的下标(注意下标从 0 开始)。如果有多种取胜的方案,输出字典序最小的那个。如果小明无法获胜,输出 −1。
1≤n≤12,1≤ai≤20