当前位置: 首页 > news >正文

网站开发小组分工常州网站建设公司效果

网站开发小组分工,常州网站建设公司效果,长沙网页制作开发公司,网络管理系统的基本组成和功能#572. 「LibreOJ Round #11」Misaka Network 与求和 推式子 ∑i1n∑j1nf(gcd(i,j))k∑d1nf(d)k∑i1nd∑j1nd[gcd(i,j)1]∑d1nf(d)k∑K1ndμ(k)(nKd)2tKd∑t1n(nt)2∑d∣tf(d)kμ(td)我们记f(x)kF(x)上面式子后半部分是一个迪利克雷卷积形式:F∗μ所以我们卷上一个I#xff0c…#572. 「LibreOJ Round #11」Misaka Network 与求和 推式子 ∑i1n∑j1nf(gcd(i,j))k∑d1nf(d)k∑i1nd∑j1nd[gcd(i,j)1]∑d1nf(d)k∑K1ndμ(k)(nKd)2tKd∑t1n(nt)2∑d∣tf(d)kμ(td)我们记f(x)kF(x)上面式子后半部分是一个迪利克雷卷积形式:F∗μ所以我们卷上一个I有F∗μ∗IF∗ϵF得到后半部分的前缀和S(n)∑i1nF(i)−∑i2nS(ni)\sum_{i 1} ^{n} \sum_{j 1} ^{n} f(gcd(i, j)) ^ k\\ \sum_{d 1} ^{n} f(d) ^k \sum_{i 1} ^{\frac{n}{d}} \sum_{j 1} ^{\frac{n}{d}}[gcd(i, j) 1]\\ \sum_{d 1} ^{n} f(d) ^k \sum_{K 1} ^{\frac{n}{d}} \mu(k) \left( \frac{n}{Kd} \right) ^2\\ t Kd\\ \sum_{t 1} ^{n} \left(\frac{n}{t} \right) ^ 2 \sum_{d \mid t} f(d) ^ k \mu(\frac{t}{d})\\ 我们记f(x) ^ k F(x)\\ 上面式子后半部分是一个迪利克雷卷积形式:F * \mu\\ 所以我们卷上一个I有F * \mu * I F * \epsilon F\\ 得到后半部分的前缀和S(n) \sum_{i 1} ^{n} F(i) - \sum_{i 2} ^{n} S(\frac{n}{i})\\ i1∑n​j1∑n​f(gcd(i,j))kd1∑n​f(d)ki1∑dn​​j1∑dn​​[gcd(i,j)1]d1∑n​f(d)kK1∑dn​​μ(k)(Kdn​)2tKdt1∑n​(tn​)2d∣t∑​f(d)kμ(dt​)我们记f(x)kF(x)上面式子后半部分是一个迪利克雷卷积形式:F∗μ所以我们卷上一个I有F∗μ∗IF∗ϵF得到后半部分的前缀和S(n)i1∑n​F(i)−i2∑n​S(in​) 化简到这里只需要跟上面一题类似用Min_25求∑i1nF(i)\sum\limits_{i 1} ^{n} F(i)i1∑n​F(i)然后用杜教筛求S(n)S(n)S(n)即可得到答案。 代码 /*Author : lifehappy */ #pragma GCC optimize(2) #pragma GCC optimize(3) #include bits/stdc.h#define mp make_pair #define pb push_back #define endl \n #define mid (l r 1) #define lson rt 1, l, mid #define rson rt 1 | 1, mid 1, r #define ls rt 1 #define rs rt 1 | 1using namespace std;typedef long long ll; typedef unsigned long long ull; typedef pairint, int pii;const double pi acos(-1.0); const double eps 1e-7; const int inf 0x3f3f3f3f;inline ll read() {ll f 1, x 0;char c getchar();while(c 0 || c 9) {if(c -) f -1;c getchar();}while(c 0 c 9) {x (x 1) (x 3) (c ^ 48);c getchar();}return f * x; }#define uint unsigned intconst int N 1e6 10;uint quick_pow(uint a, int n) {uint ans 1;while(n) {if(n 1) ans ans * a;a a * a;n 1;}return ans; }namespace Min_25 {uint prime[N], g[N], sum[N], f[N], calc[N];int a[N], id1[N], id2[N], n, m, k, cnt, T;bool st[N];int ID(int x) {return x T ? id1[x] : id2[n / x];}void init() {cnt m 0;T sqrt(n 0.5);for(int i 2; i T; i) {if(!st[i]) {prime[cnt] i;f[cnt] quick_pow(i, k);sum[cnt] sum[cnt - 1] 1;}for(int j 1; j cnt 1ll * i * prime[j] T; j) {st[i * prime[j]] 1;if(i % prime[j] 0) {break;}}}for(ll l 1, r; l n; l r 1) {r n / (n / l);a[m] n / l;if(a[m] T) id1[a[m]] m;else id2[n / a[m]] m;g[m] a[m] - 1;}for(int j 1; j cnt; j) {for(int i 1; i m 1ll * prime[j] * prime[j] a[i]; i) {g[i] - g[ID(a[i] / prime[j])] - sum[j - 1];}}for(int i 1; i T; i) {st[i] 0;}/*非递归版本*/// for(int j cnt; j 1; j--) {// for(int i 1; i m 1ll * prime[j] * prime[j] a[i]; i) {// for(ll k prime[j]; k * prime[j] a[i]; k * prime[j]) {// calc[i] calc[ID(a[i] / k)] (g[ID(a[i] / k)] - sum[j - 1]) * f[j];// }// }// }}// uint solve(int x) {// if(x 1) return 0;// return calc[ID(x)] g[ID(x)];// }/*下面是递归版本*/// uint solve(int n, int m) {// if(n prime[m] || n 1) return 0;// uint ans 0;// for(int j m; j cnt 1ll * prime[j] * prime[j] n; j) {// for(ll i prime[j]; i * prime[j] n; i * prime[j]) {// ans solve(n / i, j 1) (g[ID(n / i)] - sum[j - 1]) * f[j];// }// }// return ans;// }// uint solve(int n) {// if(n 1) return 0;// return solve(n, 1) g[ID(n)];// } }unordered_mapint, uint ans_s;uint S(int n) {if(ans_s.count(n)) return ans_s[n];uint ans Min_25::solve(n);for(uint l 2, r; l n; l r 1) {r n / (n / l);ans - (r - l 1) * S(n / l);}return ans_s[n] ans; }int main() {// freopen(in.txt, r, stdin);// freopen(out.txt, w, stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);uint n read(), k read();Min_25::n n, Min_25::k k;Min_25::init();uint ans 0;for(uint l 1, r; l n; l r 1) {r n / (n / l);ans (n / l) * (n / l) * (S(r) - S(l - 1));}cout ans endl;return 0; } 写法二 ∑i1n∑j1nf(gcd(i,j))k∑d1nf(d)k∑i1nd∑j1nd[gcd(i,j)1]∑d1nf(d)k(2∑i1ndϕ(i)−1)\sum_{i 1} ^{n} \sum_{j 1} ^{n}f(gcd(i, j)) ^k\\ \sum_{d 1} ^{n} f(d) ^ k \sum_{i 1} ^{\frac{n}{d}} \sum_{j 1} ^{\frac{n}{d}}[gcd(i, j) 1]\\ \sum_{d 1} ^{n} f(d) ^ k(2 \sum_{i 1} ^ {\frac{n}{d}} \phi(i) - 1)\\ i1∑n​j1∑n​f(gcd(i,j))kd1∑n​f(d)ki1∑dn​​j1∑dn​​[gcd(i,j)1]d1∑n​f(d)k(2i1∑dn​​ϕ(i)−1) 充分利用上面递推Min_25得到一个复杂度更优的算法。 /*Author : lifehappy */ #pragma GCC optimize(2) #pragma GCC optimize(3) #include bits/stdc.h#define mp make_pair #define pb push_back #define endl \n #define mid (l r 1) #define lson rt 1, l, mid #define rson rt 1 | 1, mid 1, r #define ls rt 1 #define rs rt 1 | 1using namespace std;typedef long long ll; typedef unsigned long long ull; typedef pairint, int pii;const double pi acos(-1.0); const double eps 1e-7; const int inf 0x3f3f3f3f;inline ll read() {ll f 1, x 0;char c getchar();while(c 0 || c 9) {if(c -) f -1;c getchar();}while(c 0 c 9) {x (x 1) (x 3) (c ^ 48);c getchar();}return f * x; }#define uint unsigned intconst int N 1e6 10;uint quick_pow(uint a, int n) {uint ans 1;while(n) {if(n 1) ans ans * a;a a * a;n 1;}return ans; }namespace Min_25 {uint prime[N], g[N], sum[N], f[N], calc[N];int a[N], id1[N], id2[N], n, m, k, cnt, T;bool st[N];int ID(int x) {return x T ? id1[x] : id2[n / x];}void init() {cnt m 0;T 1000000;for(int i 2; i T; i) {if(!st[i]) {prime[cnt] i;f[cnt] quick_pow(i, k);sum[cnt] sum[cnt - 1] 1;}for(int j 1; j cnt 1ll * i * prime[j] T; j) {st[i * prime[j]] 1;if(i % prime[j] 0) {break;}}}for(ll l 1, r; l n; l r 1) {r n / (n / l);a[m] n / l;if(a[m] T) id1[a[m]] m;else id2[n / a[m]] m;g[m] a[m] - 1;}for(int j 1; j cnt; j) {for(int i 1; i m 1ll * prime[j] * prime[j] a[i]; i) {g[i] - g[ID(a[i] / prime[j])] - sum[j - 1];}}for(int i 1; i T; i) {st[i] 0;}for(int j cnt; j 1; j--) {for(int i 1; i m 1ll * prime[j] * prime[j] a[i]; i) {for(ll k prime[j]; k * prime[j] a[i]; k * prime[j]) {calc[i] calc[ID(a[i] / k)] (g[ID(a[i] / k)] - sum[j - 1]) * f[j];}}}}uint solve(int x) {if(x 1) return 0;return calc[ID(x)] g[ID(x)];} }namespace Djs {uint prime[N], phi[N], cnt;bool st[N];void init() {phi[1] 1;for(int i 2; i N; i) {if(!st[i]) {prime[cnt] i;phi[i] i - 1;}for(int j 1; j cnt 1ll * i * prime[j] N; j) {st[i * prime[j]] 1;if(i % prime[j] 0) {phi[i * prime[j]] phi[i] * prime[j]; break;}phi[i * prime[j]] phi[i] * (prime[j] - 1);}}for(int i 1; i N; i) {phi[i] phi[i - 1];}}unordered_mapint, uint ans_s;uint S(int n) {if(n N) return phi[n];if(ans_s.count(n)) return ans_s[n];uint ans 1ll * n * (n 1) / 2;for(uint l 2, r; l n; l r 1) {r n / (n / l);ans - (r - l 1) * S(n / l);}return ans_s[n] ans;} }int main() {// freopen(in.txt, r, stdin);// freopen(out.txt, w, stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);uint n read(), k read();Min_25::n n, Min_25::k k;Min_25::init();Djs::init();uint ans 0;for(uint l 1, r; l n; l r 1) {r n / (n / l);ans (2 * Djs::S(n / l) - 1) * (Min_25::solve(r) - Min_25::solve(l - 1));}cout ans endl;return 0; }
http://www.sadfv.cn/news/85248/

相关文章:

  • 仿站网站手机网站建站公司有哪些
  • 广告设计专业是干什么的seo变现培训
  • 做好的网站怎么优化wordpress 登录验证
  • 毕设做网站什么能过hao123上网导航
  • 沧州自适应网站建设wordpress自定义头像
  • 长沙网站制作推广记录网站 自己做
  • 兴科cms网站建设系统wordpress页面怎么用
  • 专门做免费东西试吃的网站对外贸营销型网站建设的几点建议
  • 帮忙建网站的人合肥网页定制
  • 医院网站建设 费用公司策划方案
  • html5手机移动app网站制作教程手机网站商城建设答辩问题
  • 微商软件商城总站wordpress 发文章漏洞
  • 免费购物网站制作室内设计师招聘简章
  • 重庆孝爱之家网站建设网站开发预算报表
  • 北京企业网站建站哪家好长沙网站建设市场低价
  • 学做蛋糕网站中山seo扣费
  • 蓝色网站特点贵州app开发公司
  • 易物网网站建设管理常州城投建设招标网站
  • 山西网站开发建设网站企业案例
  • 免费有趣的网站塑胶制品塘厦东莞网站建设
  • 今标 网站建设天津市今天新闻头条
  • 什么网站有项目做WordPress.AMP
  • 2010年最具人气的平面设计师必备网站公益建设网站的作用
  • 淘宝客网站根目录网站的备案流程
  • 中英文网站为什么要分开做app比网站的优势
  • 网站重新设计网站建设分解结构
  • 北京改网站公众号编辑 wordpress
  • 东莞网站建设公司辉煌大厦哪里可以接网站开发项目做
  • 揭阳网站建设托管网站建设网站公司哪家好
  • 网站建设织梦怎么样网站建设的五类成员