求这题の思路。
我的代码
#include<bits/stdc++.h>
using namespace std;
int t,n,k;
signed main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>t;
while(t--)
{
cin>>n>>k;
int q=sqrt(k);
if(q*q==k)cout<<"YES\n";
else cout<<"NO\n";
}
return 0;
}
我的思路:
对于某一盏关闭的灯,可知按奇数次后会是打开的,反之则是关闭的。
由于题目要求操作编号为 i 的倍数的灯,那么对于第 k 盏灯,其被操作次数就是 k 的因数的个数(应该是)。
又因为因数常常成双成对地出现,所以大部分整数的因数个数都是偶数。
而完全平方数的因数的个数就是奇数。
故判断 k 是否是完全平方数就行了。
我的想法有什么问题吗......