hdu 2841 Visible Trees(容斥原理)
2017-08-19 09:23
465 查看
和hdu 1796差不多
枚举1-n的每个数字,计算1-m有多少数字和他互质。
合数分解,然后容斥
枚举1-n的每个数字,计算1-m有多少数字和他互质。
合数分解,然后容斥
#include <bits/stdc++.h> using namespace std; vector<int> p; //计算1-n有多少数字与num互质 int solve(int num, int n) { p.clear(); for(int i = 2; i <= num/i; ++i) { if(num%i == 0) { p.push_back(i); while(num%i == 0) num /= i; } } if(num > 1) p.push_back(num); int len = p.size(); int ans = 0; for(int i = 1; i < (1<<len); ++i) { int num = 0; int mult = 1; for(int j = 0; j < len; ++j) { if(i&(1<<j)) { ++num; mult *= p[j]; } } if(num&1) ans += n/mult; else ans -= n/mult; } return n-ans; } int main() { ios::sync_with_stdio(false); int T,m,n; long long res; cin >> T; while(T--) { cin >> m >> n; if(m > n) swap(m,n);//让m作为小的 res = n; for(int i = 2; i <= m; ++i) res += solve(i,n); cout << res << endl; } return 0; }
相关文章推荐
- HDU 2841-Visible Trees(容斥原理)
- HDU 2841 Visible Trees 数论+容斥原理
- HDU 2841 Visible Trees 数论+容斥原理
- 【HDU 2841】Visible Trees(容斥原理-好题)
- HDU 2841 Visible Trees (数论,容斥原理)
- HDU 2841 Visible Trees - 莫比乌斯 /容斥原理
- hdu 2841 Visible Trees (容斥原理)
- HDU 2841 Visible Trees (容斥原理好题)
- hdu 2841 Visible Trees (容斥原理)
- HDU 2841 Visible Trees(容斥原理)
- HDU 2841 Visible Trees (素因子分解,容斥原理)
- hdu 2841 Visible Trees 容斥原理
- hdu 2841 Visible Trees【容斥原理】
- HDU 2841 Visible Trees 解题报告(筛 or 容斥原理)
- hdu 2841 Visible Trees(容斥原理)
- [HDU 2841]Visible Trees:容斥原理
- HDU 2841 Visible Trees(容斥原理,数论)
- [思维+容斥原理] hdu 2841 Visible Trees
- hdu 4135 Co-prime +hdu 2841 Visible Trees(容斥原理)
- hdu 2841 Visible Trees(容斥原理)