2019年广东工业大学腾讯杯新生程序设计竞赛(同步赛)F-失踪的玫瑰

题目描述

「嘻嘻」
我能确认,面前这位影从者的确是一个小女孩。而在我面前排列着一行许多从表面上看起来并没有什么区别的木盒子。到底是怎样的英灵才会在以幼儿时的形态为全盛时期呢,还是说她在幼年之时就英年早逝。
「很奇怪对吧,我是哈桑(assassin)之中的一员,十八位山中老人最年轻的一位」我丝毫没有从她的话语中感觉到压力
「作为山中老人,我并没有什么特技」她拿出了一朵花,那是白玫瑰,而在眨眼间,白玫瑰又消失了。她打开了面前那个木盒子,而那朵白玫瑰正静静的躺在里面「有的是只是把一些小巧的东西不为人知地搬运到不为人所见的地方,比如把需要的小刀运到触手可及的地方和把毒药滴入食物或饮用水之中。但也只是移动一段很小的距离」
「是宝具吗」
「好聪明啊,是固有结界」她取出那朵白玫瑰,而在眨眼间又消失在她的手上
「想要我把你们从这里放出去,就把这朵白玫瑰从这n个排成一排的盒子里面找出来送给我吧。每次你们可以打开一个盒子检查(然后关上),然后我会把这朵玫瑰花移动一次,只是移动到左右相邻的两个盒子中一个
虽然这个问题看起来很困难,但实际上很简单。为了赶时间,我要选用打开盒子次数最少并且一定能够找到玫瑰的方案来把玫瑰找出来。

输入描述:

第一行一个正整数T (1<=T<=100) ,代表接下来有多少次询问.
然后T行,每行一个正整数n (3<=n<=10000) ,表示有多少个木盒子

输出描述:

输出T行。
每行包括多个数字,代表每次检查第几个盒子
(盒子编号从左到右递增,最左边的盒子编号为1,最右边的盒子编号为N)
(若存在多种方案,请输出字典序最小的那种)

两个长度为n的数组A(下标1…n)和B(下标1…n),A的字典序比B小当且仅当 A 1 A_1 A1< B 1 B_1 B1或者存在一个整数 j (1<=j<=n),满足对于所有的整数i(1<=i A i A_i Ai == B i B_i Bi,且 A j A_j Aj< B j B_j Bj.
例如:
{1,1,2,1} < {1,1,2,3}
{2,1,1,3} < {3,1,1,1}
{100,0} == {100,0}

(看不懂…)

示例1

输入

2
3
5

输出

2 2 
2 3 4 2 3 4

说明

对于3的样例:
一开始,玫瑰可能在任意一个盒子中.
检查了第2个盒子之后,如果没找到,玫瑰只可能在1,3号盒子中.
移动一次玫瑰之后,玫瑰只可能在2号盒子中.
再次检查2,一定能找到.
所以需要2次.

代码

#include
#include
int main() {
    int k, n;    
    int i;    
    scanf("%d", &k);    
    while (k--) {        
	scanf("%d", &n);
 	if (n % 2 == 1) {
	    for (i = 2;i < n;i++)                
		printf("%d ", i);             
	    for (i = 2;i < n;i++)                
		if (i == n - 1)                    
		    printf("%d\n", i);                
		else                    
	            printf("%d ", i);
	}        
	else if (n % 2 == 0) {
	    for (i = 2;i < n;i++)                
		printf("%d ", i);             
	    for (i = n - 1;i >= 2;i--)                
		if (i == 2)                    
		    printf("%d\n", i);                
		else                    
		    printf("%d ", i);
	}     
    }    return 0;
}

总结

在审题后通过给出的两个例子可以推测出
当盒子为奇数的时候只需要遍历两遍中间的盒子就可以得出答案
但是为偶数不知道要怎么搞,想着全部弄一遍?
想到解决方案也不确定是不是最优解(最简单)
所以很头疼,如果不看别人的解析估计就完全不知道怎么弄了…
目前不知道用的是什么方法写出来的
别人的思路:
2019年广东工业大学腾讯杯新生程序设计竞赛(同步赛)F-失踪的玫瑰_第1张图片
说实话我还是不知道他最开始是怎么推导出
先从第二个到倒数第二个接着倒数第二个到第二个这个思路的

你可能感兴趣的:(牛客网)