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 ...
随机推荐
- 用pypy运行ryu
最近看到pypy可以提高python的运行速率到很变态的境地,加之现在ryu发现拓扑的能力有限,不能满足实验要求,所以想将其试着在pypy上运行 部署pypy在virtualenv,在学python初 ...
- IOS 预览pdf,word文档的集中方式
在iPhone中可以很方便的预览文档文件,如:pdf.word等等,这篇文章将以PDF为例.介绍三种预览PDF的方式,又分别从本地pdf文档和网络上的pdf文档进行对比. 预览本地PDF文档: 1.使 ...
- 170118、快速失败Vs安全失败(Java迭代器附示例)
简介: 当错误发生时,如果系统立即关闭,即是快速失败,系统不会继续运行.运行中发生错误,它会立即停止操作,错误也会立即暴露.而安全失败系统在错误发生时不会停止运行.它们隐蔽错误,继续运行,而不会暴露错 ...
- Centos7 下Boost 1.61.0源码 配置开发环境
1 下载地址 https://sourceforge.net/projects/boost/files/boost/1.61.0/ boost_1_61_0.tar.gz 2 卸载系统自带的boost ...
- Too Many Open Files的错误
百度Elasticsearch-产品描述-介绍-百度云 https://cloud.baidu.com/doc/BES/FAQ.html#Too.20Many.20Open.20Files.E7.9A ...
- css3的3d属性集合
css3的3d属性集合 想进入css3的3d世界必须知道一下几个属性及其用法. 当然在进入属性介绍之前我想你必须知道3维坐标,附上一张经典图如下: 我想不用解释了吧.之后要平移和旋转都是在这个基础之上 ...
- flask大全
django:重武器,内部包含了非常多组件:ORM.Form.ModelForm.缓存.Session,中间件,信号等... flask:短小精悍.内部没有太多组件,第三方组件非常丰富 1.初识fla ...
- DOM 编程入门
DOM (Document Object Model) 文档对象模型 文档: 标记型文档(具有标签, 属性以及标签中封装的数据) 对象: 封装了属性和行为的实例, 可以被直接调用 模型: 所有标记型文 ...
- "零代码”开发B/S企业管理软件之二:怎么创建数据源
声明:该软件为本人原创作品,多年来一直在使用该软件做项目,软件本身也一直在改善,在增加新的功能.但一个人总是会有很多考虑不周全的地方,希望能找到做同类软件的同行一起探讨. 本人文笔不行,能把意思表达清 ...
- Python迭代对象与迭代器
一.迭代对象 1.概念 迭代对象:可以直接作用于for循环的对象统称为可迭代对象:Iterable. 2.可以直接作用于for循环的数据类型 (1)集合类数据类型,如list, tuple, dict ...