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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[51nod1678]lyk与gcd问题

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

這天,lyk又和gcd杠上了。 它擁有一個n個數的數列,它想實現兩種操作。

1:將 ?a?i??
?改為b。 2:給定一個數i,求所有?gcd(i,j)=1?
?時的 ?a?j??
??的總和。

Input 第一行兩個數n,Q(1<=n,Q<=100000)。 接下來一行n個數表示ai(1<=ai<=10^4)。 接下來Q行,每行先讀入一個數A(1<=A<=2)。 若A=1,表示第一種操作,緊接著兩個數i和b。(1<=i<=n,1<=b<=10^4)。 若B=2,表示第二種操作,緊接著一個數i。(1<=i<=n)。第一行兩個數n,Q(1<=n,Q<=100000)。
接下來一行n個數表示ai(1<=ai<=10^4)。
接下來Q行,每行先讀入一個數A(1<=A<=2)。
若A=1,表示第一種操作,緊接著兩個數i和b。(1<=i<=n,1<=b<=10^4)。
若B=2,表示第二種操作,緊接著一個數i。(1<=i<=n)。 Output 對于每個詢問輸出一行表示答案。對于每個詢問輸出一行表示答案。 Input示例 5?3 1?2?3?4?5 2?4 1?3?1 2?45?3
1?2?3?4?5
2?4
1?3?1
2?4 Output示例 9 79
7

把每個數的貢獻拆成每個質因數的貢獻,然后查詢時加加減減即可

#include <cstdio> const int maxn = 100000 + 10; bool mark[maxn] = {false}; int fr[maxn]; int pri[maxn], prn = 0; void shai(){for(int i = 2; i < maxn; i++){if(!mark[i]){fr[i] = i;pri[++prn] = i;}for(int j = 1; j <= prn && i * pri[j] < maxn; j++){mark[i * pri[j]] = true;fr[i * pri[j]] = pri[j];if(i % pri[j] == 0) break;}} } int p[maxn], pcnt, Max; inline void GetFactor(int n){pcnt = 0;int t;while(n != 1){t = fr[n];p[++pcnt] = t;while(n % t == 0) n /= t;}Max = (1 << pcnt) - 1; } int num[maxn], sum[maxn] = {0}; long long s = 0; inline void Update(int x, int y){y -= num[x];num[x] += y;for(int i = 1; i * i <= x; i++)if(x % i == 0){if(i * i == x) sum[i] += y;else{sum[i] += y;sum[x / i] += y;}}s += y; } inline long long solve(int x){GetFactor(x);long long ret = 0;for(int M, scnt, i = 0; i <= Max; i++){M = 1;scnt = 0;for(int j = 1; j <= pcnt; j++)if(i & 1 << j - 1){scnt++;M *= p[j];}if(scnt & 1) ret -= sum[M];else ret += sum[M];}return ret; } int main(){shai();int n, Q;scanf("%d %d", &n, &Q);int t;for(int i = 1; i <= n; i++){scanf("%d", num + i);s += num[i];}for(int i = 1; i <= n; i++)for(int j = i; j <= n; j += i)sum[i] += num[j];int op, x, y;while(Q--){scanf("%d %d", &op, &x);if(op == 1){scanf("%d", &y);Update(x, y);}else printf("%lld\n", solve(x));}return 0; }

?

轉載于:https://www.cnblogs.com/ruoruoruo/p/7732455.html

總結

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

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

主站蜘蛛池模板: 国产白丝袜美女久久久久 | 免费中文视频 | 女同性做受全过程动图 | 欧美色图另类 | 无码人妻丰满熟妇精品 | 欧美日韩极品 | 久久偷看各类wc女厕嘘嘘偷窃 | 樱花电影最新免费观看国语版 | 日韩精品一二三四区 | 爆操少妇 | 爱情岛av永久入口 | 五月天天 | 伊人9999| 国产乱子伦精品 | 国产精品高潮AV无码 | 日韩成人在线视频 | 精品自拍av | 丰满人妻一区二区三区大胸 | 激情综合五月婷婷 | 精品一区二区三区毛片 | 日本性xxxxx 免费毛片视频网站 | 未满十八18禁止免费无码网站 | 精品无码久久久久久久久 | 国产免费黄色录像 | 欧美日韩综合视频 | 粗大黑人巨茎大战欧美成人免费看 | 国产精品久久777777毛茸茸 | 青青操原 | 亚洲一区二区在线观看视频 | 日本欧美在线 | 国产视频一区二区三区四区五区 | 欧美精品久久久久久久久久 | 午夜欧美成人 | 欧美日韩综合在线观看 | 四虎成人在线观看 | 国产精品乱码妇女bbbb | 欧美日韩人妻精品一区二区 | 国产91丝袜在线播放0 | 国产乱码精品一品二品 | www.久久久久 | 天天操综合网 | 青草精品在线 | 精品国产乱码久久久久久1区2区 | 少妇日皮视频 | 日韩性高潮 | jizzjizz黄大片 | 日韩蜜桃视频 | 韩国一级淫片免费看 | 日本熟妇毛茸茸丰满 | 少妇太紧太爽又黄又硬又爽小说 | 久久久久久久久久久综合 | 亚洲一级网站 | 亚洲四虎影院 | 电影《走路上学》免费 | 波多野结衣网站 | 成人激情片 | 免费在线一级片 | 18av视频 | 精品国模一区二区三区欧美 | 久久亚洲免费 | 又色又爽又黄18网站 | 欧美老肥妇做.爰bbww视频 | 欧美爱爱视频 | 国产情侣在线播放 | 男人爱看的网站 | 天天舔天天干天天操 | 亚洲一区中文 | 91美女高潮出水 | ass日本 | 亚洲色网址 | 亚洲v日韩v综合v精品v | 久久精品天堂 | 亚洲精品www久久久久久广东 | 精品视频在线免费看 | 奇米第四色7777 | 日韩人妻精品一区二区三区 | 双性皇帝高h喷汁呻吟 | 双性皇帝高h喷汁呻吟 | 欧美人喂奶吃大乳 | 欧美一区二区三区网站 | 精品久久久久久久免费人妻 | 亚洲性影院 | www.黄色片网站 | 男女视频免费观看 | 欧美另类自拍 | 国模一区二区三区 | 免费观看成年人视频 | 青青艹视频 | 国产在线1| 国产精品国产成人国产三级 | 国产又粗又长又黄视频 | 久久精品人妻一区二区三区 | 久久国产精品久久久久久 | 五月婷婷导航 | 日韩精品高清在线观看 | 老女人综合网 | 欧美怡春院 | 国产女人高潮的av毛片 | 国产精品天美传媒沈樵 |