HDU 1337 The Drunk Jailer--(模拟题找规律)
2015-06-17 11:22
169 查看
题意:有n个监狱,共n轮,第 i 轮警察会去编号为 i 的倍数的监狱,如果是锁的就开锁,如果是开的就锁上,求n轮过后有多少犯人会逃出来
分析:这题实际上是个模拟题,因为数据很小我直接用两重循环模拟的,如果数据很大的话,就不能直接模拟了,模拟题卡时间多半是找规律。
这题的规律是:如果一个监狱被查看了偶数次的话相当于则什么都没发生,还是锁的,也就是说找没有锁上的监狱只要n以内找因数为奇数个的数有多少个即可,也就是找n以内有多少个方数(为什么?怎么找?sqrt(n)向下取整就是答案)
代码:
分析:这题实际上是个模拟题,因为数据很小我直接用两重循环模拟的,如果数据很大的话,就不能直接模拟了,模拟题卡时间多半是找规律。
这题的规律是:如果一个监狱被查看了偶数次的话相当于则什么都没发生,还是锁的,也就是说找没有锁上的监狱只要n以内找因数为奇数个的数有多少个即可,也就是找n以内有多少个方数(为什么?怎么找?sqrt(n)向下取整就是答案)
代码:
#include<iostream> using namespace std; int t,n; int a[200]; int main() { cin>>t; while(t--){ cin>>n; memset(a,0,sizeof(a)); for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++) if(j%i==0){ if(a[j]) a[j]=0; else a[j]=1; } } int tot=0; for(int i=1;i<=n;i++) if(a[i]) tot++; cout<<tot<<endl; } }
相关文章推荐
- 当摄像机被墙挡住后,墙消失,相反则出现(三维坐标到二维坐标的转换实例Camera.main.WorldToScreenPoint)
- raid简介
- http://daikainan.iteye.com/blog/1405575
- hdu3555 - Bomb(2010 ACM-ICPC Multi-University Training Contest(12))数位dp
- UNIX文件结构(转自UNIX/AIX操作系统基础教程)
- Cuda kernel failed. Error: invalid device function
- macbook air电池保养方法
- GoldenGate过程 abend,报错OGG-00868 ORA-02396: Exceeded Maximum Idle Time, Please Connect Again
- Pentest Box Tools List of Tools contained in PentestBox
- BMap API(Baidu)与google.maps API(Google)
- 事件传递之响应链(Event Delivery: The Responder Chain)【转】
- Zencart 1.5.X – login does not work – session / cookie problem – explained
- TurboMail防黑客入侵邮件系统骗取货款
- RAC连接时的2种方式Connect Time Failver和taf
- LeetCode——Contains Duplicate II
- Filter Chain in J2EE : revise response header
- 分享百万皇后问题求解
- HDU 1151 Air Raid(最小路径覆盖)
- ACM-SG函数之Fibonacci again and again——hdu1848
- poj 1363 Rails 【栈】