UVa Problem Solution: 10110 - Light, More Light

原创 2008年12月18日 13:40:00
 
The final state of the last bulb is determined by the number of factors of n. Only the number which is the square of a number has an odd number of factors, thus it has a state of "yes".

Code:
  1. /***************************************************************************
  2.  *   Copyright (C) 2008 by Liu Kaipeng                                     *
  3.  *   LiuKaipeng at gmail dot com                                           *
  4.  ***************************************************************************/
  5. /* @JUDGE_ID 00000 10110 C++ "Light, More Light" */
  6. #include <algorithm>
  7. #include <cmath>
  8. #include <cstdio>
  9. #include <cstring>
  10. #include <deque>
  11. #include <fstream>
  12. #include <iostream>
  13. #include <list>
  14. #include <map>
  15. #include <queue>
  16. #include <set>
  17. #include <stack>
  18. #include <string>
  19. #include <vector>
  20. using namespace std;
  21.      
  22. int main(int argc, char *argv[])
  23. {
  24. #ifndef ONLINE_JUDGE
  25.   freopen((string(argv[0]) + ".in").c_str(), "r", stdin);
  26.   freopen((string(argv[0]) + ".out").c_str(), "w", stdout);
  27. #endif
  28.   /* The final state of the last bulb is determined by the number of factors
  29.      of n. Only the number which is the square of a number has odd number of
  30.      factors, thus it has a state of "yes". */
  31.   for (unsigned int n; cin >> n && n != 0; ) {
  32.     unsigned int r = sqrt(n);
  33.     if (r * r == n) cout << "yes/n";
  34.     else cout << "no/n";
  35.   }
  36.   return 0;
  37. }


UVa 10110: Light, more light

这题如果直接枚举n的因子进行计数会超时。下面对这题进行分析以找到正确解法: 对n进行因数分解:   n = a0^k0 * a1^k1 * a2^k2 * ...... * am^km 则n的因子个数...
  • u011399686
  • u011399686
  • 2013年07月25日 16:50
  • 609

uva 10110 Light, more light

其实就是判断n的因子个数是奇数还是偶数,除了平方数意外所有的数的因子个数都是偶数,所以问题变为判断一个数是不是平方数 #include #include void func(unsigned ...
  • xiaohaowudi
  • xiaohaowudi
  • 2013年09月28日 15:18
  • 281

UVA 10110 Light, more light

#include #include int main() { long int n; while (scanf("%ld", &n), n) { if ( long(sqrt(n)) *...
  • kl28978113
  • kl28978113
  • 2014年07月26日 16:22
  • 1364

UVa 10110 Light, more light

Light, more light The Problem There is man named "mabu" for switching on-off light in our ...
  • ZCY20121105
  • ZCY20121105
  • 2012年09月14日 10:39
  • 663

uva 10110——Light, more light

题意:当时还挺绕人,讲的就是一个走廊里有n个灯,一个人(疯了)来回在走廊里转,走第i 圈的时候将灯数能够整除i的灯号改变一下开关,问最后的时候(走n圈的)最后一个灯是明还是暗?思路:其实就是变向求1~...
  • bobodem
  • bobodem
  • 2015年10月26日 17:08
  • 230

UVa 10110 Light, more light

开始所有的灯是灭的,不过我们只关心最后一个灯。
  • u014491224
  • u014491224
  • 2014年06月10日 15:25
  • 609

UVa 10110 - Light, more light

Light, more light The Problem There is man named "mabu" for switching on-off light in our ...
  • ACM2272902662
  • ACM2272902662
  • 2012年10月12日 21:11
  • 437

uva 10110 - Light, more light

判断最后一盏灯,而一个数因式分解,必为两个不同数相乘,(除非完全平方数),则必为一开一关。 只用判断最后一个数是否为完全平方数即可。 注意2^32已经爆int。。。这原因WA了好多次。   #...
  • u013791747
  • u013791747
  • 2014年03月04日 19:15
  • 342

uva 10110 Light, more light

      这个题求经过n次开关后,最后第n个灯是亮还是灭。本来想把求n的因数,后来发现,如果n不是开方数,因数为偶数,若是开方数,则因数为奇数,所以这题只需判断n是否为开方数即可。注意n的类型为un...
  • zhaofukai
  • zhaofukai
  • 2011年02月11日 20:26
  • 491

UVa 10110 -- Light, more light

题目大意:有一串灯,有打开和关闭两种状态,开始状态为关闭,一个人第i次走过这些灯,只有这些灯编号能整除i的灯的状态可以被改变(走一次代表一个来回,回来的途中不改变灯的状态) 思路分析:给出n(第i趟...
  • u011346442
  • u011346442
  • 2015年01月06日 09:51
  • 212
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UVa Problem Solution: 10110 - Light, More Light
举报原因:
原因补充:

(最多只允许输入30个字)