题解:P11156 【MX-X6-T2】もしも

封面

题目传送门
洛谷专栏传送门

思路

本题为数学题,需要找规律。

我们可以尝试在 ana_n 前面放 11,因为 aia_i 等于 ai2ai1\dfrac{a_{i-2}}{a_{i-1}} 向上取整,所以当 ii 等于 nn 时某个数乘 11 要等于 ana_n 很明显 ana_n11 会等于 ana_n,然后是 ii 等于 n1n-1 时,aia_i 等于 ai2ai1\dfrac{a_{i-2}}{a_{i-1}} 向上取整,又因为 an1a_{n-1} 等于 11,所以 ai2ai1a_{i-2} \le a_{i-1},是不是又可以放一了,之后一直重复可以得到序列中只有 11ana_n 这两个数并且是交替出现的。

因为第一个 11 是放在 ana_n 前的,11ana_n 这两个数交替出现,所以当 nn 是偶数时 a1a_111,当 nn 是奇数时 a1a_1ana_n

举两个例子:
n=5,an=10n=5,a_n=10 时,根据之前的思路得出的序列为 10,1,10,1,1010,1,10,1,10
n=6,an=10n=6,a_n=10 时,根据之前的思路得出的序列为 1,10,1,10,1,101,10,1,10,1,10
算一下确实是满足题目中的条件的。

代码:

#include<bits/stdc++.h>
using namespace std;
#define LL long long
int n,a,t;
int main(){
cin>>t;
while(t--){
cin>>n>>a;
if(n%2==0){
cout<<1<<" "<<a<<"\n";
}
else cout<<a<<" 1\n";
}
return 0;
}