洛谷题解洛谷题解题解:P11156 【MX-X6-T2】もしも
xyx404
题目传送门。
洛谷专栏传送门。
思路
本题为数学题,需要找规律。
我们可以尝试在 an 前面放 1,因为 ai 等于 ai−1ai−2 向上取整,所以当 i 等于 n 时某个数乘 1 要等于 an 很明显 an 乘 1 会等于 an,然后是 i 等于 n−1 时,ai 等于 ai−1ai−2 向上取整,又因为 an−1 等于 1,所以 ai−2≤ai−1,是不是又可以放一了,之后一直重复可以得到序列中只有 1 和 an 这两个数并且是交替出现的。
因为第一个 1 是放在 an 前的,1 和 an 这两个数交替出现,所以当 n 是偶数时 a1 是 1,当 n 是奇数时 a1 是 an。
举两个例子:
n=5,an=10 时,根据之前的思路得出的序列为 10,1,10,1,10。
n=6,an=10 时,根据之前的思路得出的序列为 1,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; }
|