[BZOJ1853][SCOI2010]幸运数字(DFS+容斥)
来源:互联网 发布:let it go 编辑:程序博客网 时间:2024/05/21 18:37
先预处理
对于一个幸运号码
然而,两个幸运号码对应的近似幸运号码可能有交集。考虑到这一点,就可以用容斥,也就是:
选
但是直接做是
1、发现对于两个幸运号码
2、当前的lcm一旦大于
3、将预处理出的幸运号码从大到小排序,使lcm能更快地超越上界
代码:
#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;typedef long long ll;const int N = 1e4 + 5;ll A, B, a[N], num[N], Ans;int tot, n; bool mark[N];void dfs1(int dep, int cnt, ll now, ll x) { if (dep > cnt) return (void) (a[++tot] = now); dfs1(dep + 1, cnt, now + x * 6, x * 10); dfs1(dep + 1, cnt, now + x * 8, x * 10);}void sieve() { int i, j; for (i = 1; i <= tot; i++) { if (!mark[i]) num[++n] = a[i]; for (j = i + 1; j <= tot; j++) if (a[j] % a[i] == 0) mark[j] = 1; }}ll Cnt(ll l, ll r, ll PYZ) { l = l / PYZ + (l % PYZ != 0); r /= PYZ; return r - l + 1;}void dfs2(int dep, int cnt, ll val) { if (val > B) return; if (dep > n) { if (cnt == 0) return; Ans += Cnt(A, B, val) * ((cnt & 1) ? 1 : -1); return; } dfs2(dep + 1, cnt, val); ll tmp = val / __gcd(val, num[dep]); if (1.0 * tmp * num[dep] <= B) dfs2(dep + 1, cnt + 1, tmp * num[dep]);}bool comp(ll a, ll b) {return a > b;}int main() { int i; cin >> A >> B; for (i = 1; i <= 10; i++) dfs1(1, i, 0, 1); sieve(); sort(num + 1, num + n + 1, comp); cout << (dfs2(1, 0, 1), Ans) << endl; return 0;}
阅读全文
0 0
- [BZOJ1853][SCOI2010]幸运数字(DFS+容斥)
- 【bzoj1853】 SCOI2010幸运数字 容斥原理
- BZOJ1853 [Scoi2010]幸运数字 容斥原理
- [BZOJ1853][SCOI2010][容斥原理]幸运数字
- bzoj1853[Scoi2010]幸运数字 容斥原理
- [BZOJ1853][Scoi2010]幸运数字(容斥原理)
- bzoj1853: [Scoi2010]幸运数字(容斥原理)
- bzoj1853 幸运数字 容斥原理&dfs
- bzoj1853: [Scoi2010]幸运数字 dp+容斥原理
- BZOJ1853 [Scoi2010]幸运数字 [容斥原理]【组合数学】
- 【SCOI2010】【BZOJ1853】幸运数字
- bzoj1853【SCOI2010】幸运数字
- 【bzoj1853】【scoi2010】幸运数字
- bzoj1853: [Scoi2010]幸运数字
- bzoj1853: [Scoi2010]幸运数字
- 【bzoj1853】[Scoi2010]幸运数字
- 【bzoj1853】【Scoi2010】【幸运数字】【搜索】
- 【bzoj1853】 Scoi2010—幸运数字
- WebView打开网页,设置支持Javascript,浏览的网页后退而不是退出浏览器,判断页面加载过程,缓存的使用
- [BZOJ1296][SCOI2009]粉刷匠(DP)
- LintCode6. 合并排序数组
- 底部布局
- Android Studio 优秀插件汇总
- [BZOJ1853][SCOI2010]幸运数字(DFS+容斥)
- jQuery第一章入门
- python使用matplotlib绘图 -- barChart
- EAS BOS 开发问题集锦
- windows核心编程---堆
- [BZOJ1997][HNOI2010]Planar(2-SAT)
- body标签中多了style
- [bzoj 2820]YY的GCD
- Web Servlet配置出错,访问不到