HDU 1337 && POJ 1218&& zju 1350 方法总结
题目链接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浙江
原本以为小小的一道水题不值得去总结,但是发现却有好多方法,好神奇啊
方法一:数据挺小的模拟就好
- #include<iostream>
- #include<algorithm>
- #include<stdio.h>
- #include<string.h>
- using namespace std;
- int a[110];
- int main()
- {
- int t, n;
- scanf("%d", &t);
- while(t--)
- {
- memset(a, 0, sizeof(a));
- scanf("%d", &n);
- for(int i=1; i<=n; i++)
- {
- for(int j=i; j<=n; j+=i)
- {
- a[j]=a[j]^1;
- }
- }
- int ans=0;
- for(int i=1; i<=n; i++)
- {
- if(a[i]==1)
- ans++;
- }
- printf("%d\n", ans);
- }
- return 0;
- }
方法二:其实犯人是否能够逃跑是有规律可循的,门有开/关两种形式,只要犯人最终开和关的总次数是奇数就好;例如3 1开3关 ,开关总和为偶数; 例如4 1开2关4开,开关总和为奇数 其实就是看一个数是否有奇数个因子;
- #include<iostream>
- #include<algorithm>
- #include<stdio.h>
- #include<string.h>
- using namespace std;
- int solve(int x)
- {
- int cnt=;
- for(int i=; i<=x; i++)
- {
- if(x%i==)
- cnt++;
- }
- if(cnt%==)
- return ;
- else
- return ;
- }
- int main()
- {
- int t, n;
- scanf("%d", &t);
- while(t--)
- {
- scanf("%d", &n);
- int ans=;
- for(int i=; i<=n; i++)
- {
- if(solve(i))
- ans++;
- }
- printf("%d\n", ans);
- }
- return ;
- }
第三种:是看别人才知道的,真的是世界之大无奇不有;
原理是:只有完全平方数才有奇数个因子,例如3, 9,所以只需要求出n以内的完全平方数的个数即可;
n以内的 完全平方数的个数=sqrt(n);
- #include<cstdio>
- #include<cmath>
- int main()
- {
- int t,n;
- scanf("%d",&t);
- while(t--)
- {
- scanf("%d",&n);
- printf("%d\n",(int)sqrt(n));
- }
- return 0;
- }
HDU 1337 && POJ 1218&& zju 1350 方法总结的更多相关文章
- Coins HDU - 2844 POJ - 1742
Coins HDU - 2844 POJ - 1742 多重背包可行性 当做一般多重背包,二进制优化 #include<cstdio> #include<cstring> in ...
- 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 ...
- hdu 2844 poj 1742 Coins
hdu 2844 poj 1742 Coins 题目相同,但是时限不同,原本上面的多重背包我初始化为0,f[0] = 1;用位或进行优化,f[i]=1表示可以兑成i,0表示不能. 在poj上运行时间正 ...
- 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 ...
- 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 ...
- 扫描线三巨头 hdu1928&&hdu 1255 && hdu 1542 [POJ 1151]
学习链接:http://blog.csdn.net/lwt36/article/details/48908031 学习扫描线主要学习的是一种扫描的思想,后期可以求解很多问题. 扫描线求矩形周长并 hd ...
- hdu 1540/POJ 2892 Tunnel Warfare 【线段树区间合并】
Tunnel Warfare Time Limit: 4000/2000 MS ...
- 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 ...
- HDU 1828 / POJ 1177 Picture (线段树扫描线,求矩阵并的周长,经典题)
做这道题之前,建议先做POJ 1151 Atlantis,经典的扫描线求矩阵的面积并 参考连接: http://www.cnblogs.com/scau20110726/archive/2013/0 ...
随机推荐
- 线程池ThreadPool详解
http://www.cnblogs.com/kissdodog/archive/2013/03/28/2986026.html 一.CLR线程池 管理线程开销最好的方式: 尽量少的创建线程并且能将线 ...
- MVC、MVP、MVVM
1 简介 演变:MVC ——> MVP ——> MVVM 英文原文:MVC vs. MVP vs. MVVM 三者的目的都是分离关注,使得UI更容易变换(从Winform变为Webform ...
- [LintCode] O(1)检测2的幂次
class Solution { public: /* * @param n: An integer * @return: True or false */ bool checkPowerOf2(in ...
- Spring 的IOC容器之XML方式
1. Spring 入门 1.1 概述 Spring 是一个分层的 JavaEE 轻量级开源框架; Spring 的核心是控制反转(IOC)和面向切面(AOP); 1.2 特点 方便解耦,简化开发; ...
- Hibernate 的查询
1. Hibernate 框架的查询方式 唯一标识OID的检索方式: session.get(对象.class, OID) 对象导航的方式; HQL 检索方式; QBC 检索方式; SQL 检索方式 ...
- 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 ...
- java maven项目打包
使用IDEA打包,首先调出来maven projects窗口: 菜单栏Help->Find Action(Ctrl+Shift+A),输入Maven projects https://blog. ...
- 我的Android进阶之旅------>关于使用CSDN-markdown编辑器来编写博客
关于使用MarkDown编辑器的原因 什么是 Markdown 制作一份待办事宜 Todo 列表 书写一个质能守恒公式LaTeX 高亮一段代码code 高效绘制 流程图 高效绘制序列图 绘制表格 更详 ...
- Diango思维图
1,http 2,Django生命周期 3,Django部分命令 4,待续...
- 数据库引擎、索引、pymysql
一.数据库存储引擎 1.存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件应该有不同的类型:比如存文本用txt类型,存表格用excel ...