【NOIP2013初赛】整除
来源:互联网 发布:da8da六爻排盘软件 编辑:程序博客网 时间:2024/06/10 18:55
题目描述:
题解:
容斥原理。
答案相当于answer(r)-answer(l-1),这都是很简单的套路了。
讲讲answer(x)怎么求。
方法一:
这是我考场上想到的方法,看起来比较麻烦,理解也有点难度,感兴趣的可以参考一下咯。
为方便接下来的内容,我们先定义x1x2为x/(gbs(x1,x2)),gbs表示两个数的最小公倍数。
题目是求不能被整除的数,我们就用总数减去能被整除的数就好了。
先有一个a1,我们求1~x中能被a1整除的数,很显然是x/a1。
再加入一个a2,我们求1~x中能被a1或a2整除的数,容斥原理很显然再加上x/a2-a1a2。
再加入a3,显然再加上x/a3-a1a3-a2a3+a1a2a3
再加入a4,显然再加上x/a4-a1a4-a2a4-a3a4+a1a2a4+a1a3a4+a2a3a4-a1a2a3a4。
聪明可爱的孩子可以发现这是有规律的。
在插入a4的时候,再加上的值其实是a1,a2,a1a2,a3,a1a3,a2a3,a1a2a3这些数末尾加个a4,而这些数就是a1,a2,a3的容斥原理计算过程。
至于哪些是加哪些是减呢?
显然我们可以发现奇数个是加,偶数个是减。
然后呢,发现这些规律后,我们就可以模拟做下去了。
方法二:
刚才看别人总结时发现了一个更简单的方法。
其实,只要dfs枚举那n个数选还是不选,选奇数个答案就加上,选偶数个答案就减去。时间复杂度2^n。
阅读全文
1 0
- 【NOIP2013初赛】整除
- JZOJsenior3476.【NOIP2013初赛】整除
- 3476. 【NOIP2013初赛】整除
- 0【NOIP2013初赛】整除 1铺砖问题 2【NOIP2012初赛】新壳栈 3【NOIP2013初赛】青蛙
- NOIP2013提高组初赛
- noip2013提高组初赛(答案+选择题题目+个人分析)
- JZOJ3477. 【NOIP2013初赛】青蛙(2017.10B组)
- NOIP2013
- noip2013
- noip2013
- NOIP 提高组 初赛 四、阅读程序写结果 习题集(八)NOIP2012-NOIP2013
- NOIP 提高组 初赛 四、阅读程序写结果 习题集(八)NOIP2012-NOIP2013
- 整除
- 整除
- 整除
- 整除
- 整除
- 整除
- 环境变量
- 7.oracle函数
- 16通道24位分辨率x8 PCIE 3U PXIE采集卡
- Codeforces 270E Flawed Flow【思维+类拓扑排序】
- 【第二周周练 H 】
- 【NOIP2013初赛】整除
- Combination Sum II:允许重复的数组中选取若干元素使和为某一给定值
- 初识GP
- 树莓派键盘布局设置入坑与出坑
- 【python】二进制转换
- CodeForces
- 顺序表ADT实现(带注释)
- 一小时学会搭建网站
- 8.oracle 复杂表查询