HDU 6134 Battlestation Operational 2017多校8 莫比乌斯反演
来源:互联网 发布:网站数据监控 编辑:程序博客网 时间:2024/06/04 20:15
#include <iostream>#include <cstdio>#include <cctype>#include <algorithm>#include <cstring>#include <string>#include <cmath>#include <vector>#include <set>#include <stack>#include <sstream>#include <queue>#include <map>#include <functional>#include <bitset>//#include <unordered_map>//#include <unordered_set>using namespace std;#define pb push_back#define mk make_pair#define ll long long#define ull unsigned long long#define pii pair<int, int>#define fi first#define se second#define mid ((l+r)/2)#define ALL(A) A.begin(), A.end()#define rep(i,n) for(int (i)=0;(i)<(int)(n);(i)++)#define repr(i, n) for(int (i)=(int)(n);(i)>=0;(i)--)#define repab(i,a,b) for(int (i)=(int)(a);(i)<=(int)(b);(i)++)#define reprab(i,a,b) for(int (i)=(int)(a);(i)>=(int)(b);(i)--)#define sc(x) scanf("%d", &x)#define pr(x) printf(#x":%d\n", x)#define fastio ios::sync_with_stdio(0), cin.tie(0)#define frein freopen("in.txt", "r", stdin)#define freout freopen("out.txt", "w", stdout)#define freout1 freopen("out1.txt", "w", stdout)#define lson (rt*2+1)#define rson (rt*2+2)#define br puts("")#define PI M_PI#define debug cout<<"???"<<endlconst ll mod = 1e9+7;const int INF = 0x3f3f3f3f;const double eps = 1e-6;template<class T> T gcd(T a, T b){if(!b)return a;return gcd(b,a%b);}const int maxn = 1e6+100;///d[i]表示i的最小质因子的次幂const int MAX = 1e6+100;int noprime[MAX], facnum[MAX], phi[MAX], mob[MAX], p[MAX], pnum, d[MAX];void get_all(){ int pnum = 0; phi[1] = 1; mob[1] = 1; facnum[1] = 1; for(int i = 2; i < MAX; i++) { if(!noprime[i]) { phi[i] = i - 1; mob[i] = -1; p[pnum ++] = i; facnum[i] = 2; d[i] = 1; } for(int j = 0; j < pnum && i * p[j] < MAX; j++) { noprime[i * p[j]] = true; if(i % p[j] == 0) { phi[i * p[j]] = phi[i] * p[j]; mob[i * p[j]] = 0; facnum[i * p[j]] = facnum[i] / (d[i] + 1) * (d[i] + 2); d[i * p[j]] = d[i] + 1; break; } phi[i * p[j]] = phi[i] * (p[j] - 1); mob[i * p[j]] = -mob[i]; facnum[i * p[j]] = facnum[i] * 2; d[i * p[j]] = 1; } }}int h[maxn], g[maxn];void init(){ get_all(); memset(h, 0, sizeof(h)); memset(g, 0, sizeof(g)); for(int i = 1; i < maxn; i++){ g[i] = (1LL*g[i-1]+facnum[i-1]+1)%mod; } for(int i = 1; i < maxn; i++){ for(int j = i; j < maxn; j += i){ h[j] = (h[j] += 1LL*g[i]*mob[j/i]+mod)%mod; } } for(int i = 1; i < maxn; i++){ h[i] = (h[i-1]+1LL*h[i])%mod; }}int main(){ init(); int n; while(cin >> n){ cout << h[n] << endl; } return 0;}
阅读全文
0 0
- HDU 6134 Battlestation Operational 2017多校8 莫比乌斯反演
- hdu 6134 Battlestation Operational 莫比乌斯反演
- HDU 6134(2017 多校训练:Battlestation Operational(莫比乌斯反演))
- HDU 6134 Battlestation Operational(积性函数+莫比乌斯反演)
- hdu 6134 Battlestation Operational (莫比乌斯反演+线性筛法+差分)
- HDU 6134 Battlestation Operational(莫比乌斯反演+线性筛)
- HDU 6134 Battlestation Operational 莫比乌斯反演 + 数学推导
- HDU 6134 && 2017 多校训练:Battlestation Operational(莫比乌斯反演+积性函数)
- HDU 6134 Battlestation Operational(基本数论+莫比乌斯反演)——2017 Multi-University Training Contest
- 【HDU6134】Battlestation Operational (莫比乌斯反演)
- 【HDU6134】Battlestation Operational(莫比乌斯反演)
- 解题报告:HDU_6134:Battlestation Operational (莫比乌斯反演)
- hdu6134 Battlestation Operational 莫比乌斯反演
- Battlestation Operational(hdu6134 莫比乌斯反演)
- HDU 6134 Battlestation Operational-莫比乌斯
- 2017多校八 1002题 hdu 6134 Battlestation Operational 艾弗森约定 莫比乌斯函数 分块
- HDU6134 Battlestation Operational 【莫比乌斯】
- hdu 6134 Battlestation Operational [反演]【数学】
- c++需要补充的知识点整理
- osgEarth矢量属性过滤案例 40. feature_custom_filters.earth
- Android图片写成圆形ImageView
- java8 toMap(key重复如何解决)
- Maven
- HDU 6134 Battlestation Operational 2017多校8 莫比乌斯反演
- show slave status\G中的Read_Master_Log_Pos和Relay_Log_Pos的(大小)关系
- 人事管理系统第一天之整体设计
- MVP模式实例讲解
- 分布式系统相关概念
- 解决IDEA run()时找不到加载类的问题
- Freeswitch连接SIP电话
- unity3d android工程签名
- Course 1-Neural Network & Deep Learning