您的位置:首页 > 其它

Switch Game<开灯问题>关于n以内的完全平方数个数求解

2017-07-29 17:24 411 查看


Switch Game

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 15011    Accepted Submission(s): 9160


Problem Description

There are many lamps in a line. All of them are off at first. A series of operations are carried out on these lamps. On the i-th operation, the lamps whose numbers are the multiple of i change the condition ( on to off and off to on ).

 

Input

Each test case contains only a number n ( 0< n<= 10^5) in a line.

 

Output

Output the condition of the n-th lamp after infinity operations ( 0 - off, 1 - on ).

 

Sample Input

1
5

 

Sample Output

1
0

Hinthint

Consider the second test case:

The initial condition : 0 0 0 0 0 …
After the first operation : 1 1 1 1 1 …
After the second operation : 1 0 1 0 1 …
After the third operation : 1 0 0 0 1 …
After the fourth operation : 1 0 0 1 1 …
After the fifth operation : 1 0 0 1 0 …

The later operations cannot change the condition of the fifth lamp any more. So the answer is 0.

 

Author

LL

 

Source

校庆杯Warm Up

其实,开灯这一类的题目我们都已经做了几遍了,最开始用的模拟可以AC,但是今天打月赛的时候做了,理解了一个非常好得方法

解题思路:

考虑哪些位置的a[i]最终为1,最终为1说明此位置被反转了奇数次,即i有奇数个因子,而有且仅有完全平方数有奇数个因子,所以答案为sqrt(n)。

这里解释一下为什么对于n以内的数只含有sqrt(n)个完全平方数

首先,所谓的完全平方数:完全平方即用一个整数乘以自己例如1*1,2*2,3*3等,依此类推。若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数

所以我们可以理解,在N以内的最大完全平方因子为sqrt(n),那么,因为所有的数都能生成一个完全平方数,所以从1到sqrt(n)都能生成一个小于等于N的完全平方数,所以我们取N以内的完全平方数个数,只要向下取整求得sqrt(N)即可

#include <iostream>
#include <cstring>
#include <stack>
#include <cstdio>
#include <cmath>
#include <queue>
#include <algorithm>
#include <vector>
#include <set>
#include <map>

const double eps=1e-8;
const double PI=acos(-1.0);
using namespace std;

long long int a[70];

int main()
{
double n;
while(~scanf("%lf",&n)){
printf("%.0f\n",floor(sqrt(n)));
}
return 0;
}

/**********************************************************************
Problem: 1970
User: 201501080127
Language: C++
Result: AC
Time:128 ms
Memory:2032 kb
**********************************************************************/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ACM OJ hdu csu