luogu P1876开灯
开灯题面
这个题我一开始的思路是用模拟来做,但是看到了n的数据范围以后,我发现绝对不行啊,数据范围太大,有可能会超时,而且也开不了数组,怎么办呢?看了一下,原来是数学题( ⊙ o ⊙ )啊!
说一个重要的事,由于第一个人把灯全部打开,所以有奇数个因子编号的灯会开着,详见为什么完全平方数有奇数个因数
上代码:
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=sqrt(n);i++)
{
cout<<i*i<<" ";
}
return 0;
}
O(∩_∩)O哈哈~^_^
风过林梢,骄阳正好
彼时他们正当年少。

浙公网安备 33010602011771号