日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[SDOI2018] 旧试题

發布時間:2025/7/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [SDOI2018] 旧试题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

推獅子的部分

\[ \sum_{i=1}^A\sum_{j=1}^B\sum_{k=1}^C\sigma(ijk) =\sum_{i=1}^A\sum_{j=1}^B\sum_{k=1}^C\sum_{x|i}\sum_{y|j}\sum_{z|k}\epsilon(\gcd(x,y))\epsilon(\gcd(y,z))\epsilon(\gcd(x,z))\\ =\sum_{i=1}^A\sum_{x|i}\sum_{j=1}^B\sum_{y|j}\sum_{k=1}^C\sum_{z|k}\epsilon(\gcd(x,y))\epsilon(\gcd(y,z))\epsilon(\gcd(x,z))\\ =\sum_{x=1}^A\lfloor\frac{A}{x}\rfloor\sum_{y=1}^B\lfloor\frac{B}{y}\rfloor\sum_{z=1}^C\lfloor\frac{C}{z}\rfloor\epsilon(\gcd(x,y))\epsilon(\gcd(y,z))\epsilon(\gcd(x,z))\\ =\sum_{x=1}^A\lfloor\frac{A}{x}\rfloor\sum_{y=1}^B\lfloor\frac{B}{y}\rfloor\sum_{z=1}^C\lfloor\frac{C}{z}\rfloor\sum_{d|x,d|y}\mu(d)\sum_{p|y,p|z}\mu(p)\sum_{q|x,q|z}\mu(q)\\ =\sum_{d=1}^{\min(A,B)}\mu(d)\sum_{p=1}^{\min(B,C)}\mu(p)\sum_{q=1}^{\min(A,C)}\mu(q)\sum_{d|x,q|x}^A\lfloor\frac{A}{x}\rfloor\sum_{d|y,p|y}^B\lfloor\frac{B}{y}\rfloor\sum_{p|z,q|z}^C\lfloor\frac{C}{z}\rfloor\\ =\sum_{d=1}^{\min(A,B)}\mu(d)\sum_{p=1}^{\min(B,C)}\mu(p)\sum_{q=1}^{\min(A,C)}\mu(q)\sum_{lcm(d,q)|x}^A\lfloor\frac{A}{x}\rfloor\sum_{lcm(d,p)|y}^B\lfloor\frac{B}{y}\rfloor\sum_{lcm(p,q)|z}^C\lfloor\frac{C}{z}\rfloor\\ \text{define } f(n,t)=\sum_{t|x}\lfloor\frac{n}{x}\rfloor ,N=\max(A,B,C)\\ \cdots=\sum_{d=1}^N\mu(d)\sum_{p=1}^N\mu(p)\sum_{q=1}^N\mu(q)f(A,lcm(d,q))f(B,lcm(d,p))f(C,lcm(p,q))\\ \]

計算答案

其中\(f(n,t)\)可以\(O(n\log n)\)預處理。

考慮對\(T\)個點連邊建圖,\(u\)\(v\)之間有邊當且僅當\(\mu(u)\not=0,\mu(v)\not=0,lcm(a,b)\not>T\)。那么圖中的每個三元環都能算入答案,這里的三元環還包括只有倆點的和只有單點的。

對于包含三個點的\(<d,p,q>\)的貢獻為
\[ \mu(d)\mu(p)\mu(q)\times\\ (f(A,lcm(d,q))f(B,lcm(d,p))f(C,lcm(p,q))+\\ f(A,lcm(d,q))f(B,lcm(p,q))f(C,lcm(d,p))+\\ f(A,lcm(d,p))f(B,lcm(d,q))f(C,lcm(p,q))+\\ f(A,lcm(d,p))f(B,lcm(p,q))f(C,lcm(d,q))+\\ f(A,lcm(p,q))f(B,lcm(d,p))f(C,lcm(d,q))+\\ f(A,lcm(p,q))f(B,lcm(d,q))f(C,lcm(d,p))) \]
對于包含兩個、一個的環同理。統計三元環的方法參照不常用的黑科技——「三元環」。

參考實現

#include <bits/stdc++.h> using namespace std; const int N=1e5+10; const int mod=1e9+7;//[SDOI2018]舊試題int pr[N],cnt; int mu[N],bk[N],deg[N]; long long fa[N],fb[N],fc[N]; bool vis[N]; struct Node {int u,v,w;}; struct Edge {int ver,len;};Node ech[N*300]; vector<Edge> e[N];int solve(int a,int b,int c) {long long ans=0;int n=max(a,max(b,c)),m=0;for(int i=1; i<=n; ++i) {deg[i]=fa[i]=fb[i]=fc[i]=0;e[i].clear();}for(int i=1; i<=n; ++i) {for(int x=i; x<=n; x+=i) {fa[i]+=a/x,fb[i]+=b/x,fc[i]+=c/x;}}for(int i=1; i<=a&&i<=b&&i<=c; ++i) {if(mu[i]) ans+=mu[i]*mu[i]*mu[i]*fa[i]*fb[i]*fc[i];}for(int g=1; g<=n; ++g) {for(int i=1; i*g<=n; ++i) if(mu[i*g]) {for(int j=i+1; 1LL*i*j*g<=n; ++j) if(mu[j*g]&&__gcd(i,j)==1) {int u=i*g,v=j*g,w=i*j*g; deg[u]++,deg[v]++,ech[++m]=(Node){u,v,w};ans+=mu[u]*mu[u]*mu[v]*(fa[u]*fb[w]*fc[w]+fa[w]*fb[u]*fc[w]+fa[w]*fb[w]*fc[u]);ans+=mu[u]*mu[v]*mu[v]*(fa[v]*fb[w]*fc[w]+fa[w]*fb[v]*fc[w]+fa[w]*fb[w]*fc[v]);}}}for(int i=1; i<=m; ++i) {if(deg[ech[i].u]<deg[ech[i].v]||(deg[ech[i].u]==deg[ech[i].v]&&ech[i].u<ech[i].v)) swap(ech[i].u,ech[i].v);e[ech[i].u].push_back((Edge){ech[i].v,ech[i].w});} #define veit vector<Edge>::iterator for(int i=1; i<=n; ++i) if(mu[i]) {for(veit j=e[i].begin(); j!=e[i].end(); ++j) bk[j->ver]=j->len;for(veit j=e[i].begin(); j!=e[i].end(); ++j) {for(veit k=e[j->ver].begin(); k!=e[j->ver].end(); ++k) {if(!bk[k->ver]) continue;ans+=mu[i]*mu[j->ver]*mu[k->ver]*(fa[j->len]*fb[k->len]*fc[bk[k->ver]]+fa[j->len]*fb[bk[k->ver]]*fc[k->len]+fa[k->len]*fb[j->len]*fc[bk[k->ver]]+fa[k->len]*fb[bk[k->ver]]*fc[j->len]+fa[bk[k->ver]]*fb[j->len]*fc[k->len]+fa[bk[k->ver]]*fb[k->len]*fc[j->len]);}}for(veit j=e[i].begin(); j!=e[i].end(); ++j) bk[j->ver]=0;}return (ans%mod+mod)%mod; }void sieve() {mu[1]=1;for(int i=2; i<N; ++i) {if(!vis[i]) mu[pr[++cnt]=i]=-1;for(int j=1; j<=cnt&&i*pr[j]<N; ++j) {vis[i*pr[j]]=1;if(i%pr[j]==0) break;else mu[i*pr[j]]=-mu[i];}} }int main() {sieve();int T,a,b,c;scanf("%d",&T);while(T--) {scanf("%d%d%d",&a,&b,&c);printf("%d\n",solve(a,b,c)); }return 0; }

轉載于:https://www.cnblogs.com/nosta/p/10544559.html

總結

以上是生活随笔為你收集整理的[SDOI2018] 旧试题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久成人在线视频 | 天天鲁| xxxxxx欧美 | 美女涩涩视频 | 毛片1000部免费看 | av不卡网 | 婷婷一区二区三区 | 精品亚洲成人 | 一级黄色片毛片 | 色偷偷av一区二区三区 | 精品影视| 三级国产在线观看 | 日本一区不卡在线 | 中文字幕乱码在线观看 | 亚洲激情一区二区三区 | 天堂视频在线免费观看 | 老外毛片 | 北条麻妃二三区 | 午夜手机福利 | 一级黄视频 | av午夜在线观看 | 日本黄色精品 | 久久久久久久穴 | 一级黄色录像免费观看 | 密臀av在线| 三级视频网 | 欧美日韩国产91 | 国产一级免费 | 日韩综合区 | 亚洲国产成人va在线观看天堂 | 主播福利在线 | 中文字幕欧美日韩 | 天天干视频在线观看 | 亚洲成人免费在线 | 超碰午夜 | 日韩欧美手机在线 | 国产三区四区视频 | 国产精品日日夜夜 | 精品中文字幕在线观看 | 亚洲视频中文字幕在线观看 | 国产精品视频一区二区三区, | 免费瑟瑟网站 | 精品久久免费观看 | 日本黄在线观看 | 日韩午夜影院 | 东京av男人的天堂 | 日韩免费一级 | 国产高清免费观看 | 91午夜理伦私人影院 | 欧美亚洲国产另类 | 国产精品极品白嫩在线 | 337p日本欧洲亚洲鲁鲁 | 成年人在线视频 | 亚洲一区二区在线视频 | 色女人天堂 | 天天爽天天爱 | 成人精品视频99在线观看免费 | 草草免费视频 | 69福利区 | 午夜免费福利影院 | 亚洲国产精品无码观看久久 | 秋霞成人午夜伦在线观看 | aise爱色av | 国产成人精品自拍 | 日韩天天干| 欧美成人激情 | 性视频黄色 | 四虎影院在线免费播放 | 五月天婷婷爱 | 久久伊人中文字幕 | 日韩国产欧美精品 | 91少妇丨porny丨 | 欧美日韩少妇精品 | 人妻熟妇又伦精品视频a | 黄色av影院 | 成人在线网站 | 中文字幕永久在线视频 | 成人h视频| 国产在线一二三区 | 欧美一级大片在线观看 | 日本一区二区不卡视频 | 中文字幕一区二区三区乱码人妻 | 国产一页 | 日韩一区二区视频在线观看 | 亚洲精品97久久中文字幕无码 | 国产剧情自拍 | 一区二区免费看 | www.黄色| 9l视频自拍九色9l视频 | 久久一级大片 | 亚洲激情电影在线 | 一二三区精品视频 | 91国产免费看 | 成人在线观看视频网站 | 色女孩综合 | 久久99精品久久久久 | 亚洲私拍 | 欧美少妇在线 | 中国老头性行为xxxx |