题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1337 杭电

http://poj.org/problem?id=1218清华

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1350浙江

原本以为小小的一道水题不值得去总结,但是发现却有好多方法,好神奇啊

方法一:数据挺小的模拟就好

  1. #include<iostream>
  2. #include<algorithm>
  3. #include<stdio.h>
  4. #include<string.h>
  5. using namespace std;
  6.  
  7. int a[110];
  8. int main()
  9. {
  10. int t, n;
  11. scanf("%d", &t);
  12. while(t--)
  13. {
  14. memset(a, 0, sizeof(a));
  15. scanf("%d", &n);
  16. for(int i=1; i<=n; i++)
  17. {
  18. for(int j=i; j<=n; j+=i)
  19. {
  20. a[j]=a[j]^1;
  21. }
  22. }
  23. int ans=0;
  24. for(int i=1; i<=n; i++)
  25. {
  26. if(a[i]==1)
  27. ans++;
  28. }
  29.  
  30. printf("%d\n", ans);
  31. }
  32. return 0;
  33. }

方法二:其实犯人是否能够逃跑是有规律可循的,门有开/关两种形式,只要犯人最终开和关的总次数是奇数就好;例如3 1开3关 ,开关总和为偶数; 例如4 1开2关4开,开关总和为奇数  其实就是看一个数是否有奇数个因子;

  1. #include<iostream>
  2. #include<algorithm>
  3. #include<stdio.h>
  4. #include<string.h>
  5. using namespace std;
  6.  
  7. int solve(int x)
  8. {
  9. int cnt=;
  10. for(int i=; i<=x; i++)
  11. {
  12. if(x%i==)
  13. cnt++;
  14. }
  15. if(cnt%==)
  16. return ;
  17. else
  18. return ;
  19. }
  20. int main()
  21. {
  22. int t, n;
  23. scanf("%d", &t);
  24. while(t--)
  25. {
  26. scanf("%d", &n);
  27. int ans=;
  28. for(int i=; i<=n; i++)
  29. {
  30. if(solve(i))
  31. ans++;
  32. }
  33. printf("%d\n", ans);
  34. }
  35. return ;
  36. }

第三种:是看别人才知道的,真的是世界之大无奇不有;

原理是:只有完全平方数才有奇数个因子,例如3, 9,所以只需要求出n以内的完全平方数的个数即可;

n以内的 完全平方数的个数=sqrt(n);

  1. #include<cstdio>
  2. #include<cmath>
  3. int main()
  4. {
  5. int t,n;
  6. scanf("%d",&t);
  7. while(t--)
  8. {
  9. scanf("%d",&n);
  10. printf("%d\n",(int)sqrt(n));
  11. }
  12. return 0;
  13. }

  

HDU 1337 && POJ 1218&& zju 1350 方法总结的更多相关文章

  1. Coins HDU - 2844 POJ - 1742

    Coins HDU - 2844 POJ - 1742 多重背包可行性 当做一般多重背包,二进制优化 #include<cstdio> #include<cstring> in ...

  2. HDU 3695 / POJ 3987 Computer Virus on Planet Pandora(AC自动机)(2010 Asia Fuzhou Regional Contest)

    Description Aliens on planet Pandora also write computer programs like us. Their programs only consi ...

  3. hdu 2844 poj 1742 Coins

    hdu 2844 poj 1742 Coins 题目相同,但是时限不同,原本上面的多重背包我初始化为0,f[0] = 1;用位或进行优化,f[i]=1表示可以兑成i,0表示不能. 在poj上运行时间正 ...

  4. HDU 3265/POJ 3832 Posters(扫描线+线段树)(2009 Asia Ningbo Regional)

    Description Ted has a new house with a huge window. In this big summer, Ted decides to decorate the ...

  5. HDU 2494/POJ 3930 Elevator(模拟)(2008 Asia Regional Beijing)

    Description Too worrying about the house price bubble, poor Mike sold his house and rent an apartmen ...

  6. 扫描线三巨头 hdu1928&&hdu 1255 && hdu 1542 [POJ 1151]

    学习链接:http://blog.csdn.net/lwt36/article/details/48908031 学习扫描线主要学习的是一种扫描的思想,后期可以求解很多问题. 扫描线求矩形周长并 hd ...

  7. hdu 1540/POJ 2892 Tunnel Warfare 【线段树区间合并】

    Tunnel Warfare                                                             Time Limit: 4000/2000 MS ...

  8. Eight hdu 1043 poj 1077

    Description The 15-puzzle has been around for over 100 years; even if you don't know it by that name ...

  9. HDU 1828 / POJ 1177 Picture (线段树扫描线,求矩阵并的周长,经典题)

    做这道题之前,建议先做POJ 1151  Atlantis,经典的扫描线求矩阵的面积并 参考连接: http://www.cnblogs.com/scau20110726/archive/2013/0 ...

随机推荐

  1. 线程池ThreadPool详解

    http://www.cnblogs.com/kissdodog/archive/2013/03/28/2986026.html 一.CLR线程池 管理线程开销最好的方式: 尽量少的创建线程并且能将线 ...

  2. MVC、MVP、MVVM

    1 简介 演变:MVC ——> MVP ——> MVVM 英文原文:MVC vs. MVP vs. MVVM 三者的目的都是分离关注,使得UI更容易变换(从Winform变为Webform ...

  3. [LintCode] O(1)检测2的幂次

    class Solution { public: /* * @param n: An integer * @return: True or false */ bool checkPowerOf2(in ...

  4. Spring 的IOC容器之XML方式

    1. Spring 入门 1.1 概述 Spring 是一个分层的 JavaEE 轻量级开源框架; Spring 的核心是控制反转(IOC)和面向切面(AOP); 1.2 特点 方便解耦,简化开发; ...

  5. Hibernate 的查询

    1. Hibernate 框架的查询方式 唯一标识OID的检索方式: session.get(对象.class, OID) 对象导航的方式; HQL 检索方式; QBC 检索方式; SQL 检索方式 ...

  6. delphi inifile 支持 utf8

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  7. java maven项目打包

    使用IDEA打包,首先调出来maven projects窗口: 菜单栏Help->Find Action(Ctrl+Shift+A),输入Maven projects https://blog. ...

  8. 我的Android进阶之旅------>关于使用CSDN-markdown编辑器来编写博客

    关于使用MarkDown编辑器的原因 什么是 Markdown 制作一份待办事宜 Todo 列表 书写一个质能守恒公式LaTeX 高亮一段代码code 高效绘制 流程图 高效绘制序列图 绘制表格 更详 ...

  9. Diango思维图

    1,http 2,Django生命周期 3,Django部分命令 4,待续...

  10. 数据库引擎、索引、pymysql

    一.数据库存储引擎 1.存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件应该有不同的类型:比如存文本用txt类型,存表格用excel ...