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

· · 题解

题目传送门。

思路

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

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

因为第一个 1 是放在 a_n 前的,1a_n 这两个数交替出现,所以当 n 是偶数时 a_11,当 n 是奇数时 a_1a_n

举两个例子:

$n=6,a_n=10$ 时,根据之前的思路得出的序列为 $1,10,1,10,1,10$。 算一下确实是满足题目中的条件的。 ## 代码: ```cpp #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; } ```