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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Codeforces 359D Pair of Numbers | 二分+ST表+gcd

發布時間:2025/4/9 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Codeforces 359D Pair of Numbers | 二分+ST表+gcd 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?題面:

給一個序列,求最長的合法區間,合法被定義為這個序列的gcd=區間最小值

輸出最長合法區間個數,r-l長度

接下來輸出每個合法區間的左端點


?

題解:

由于區間gcd滿足單調性,所以我們可以二分區間長度,用st表維護區間最小值和gcd即可

1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 #include<cmath> 5 #define N 300100 6 using namespace std; 7 int gcd(int x,int y) 8 { 9 return y==0?x:gcd(y,x%y); 10 } 11 int rgcd[N][21],rmin[N][21],n,l,r,mid,ans,ok[N]; 12 int check(int len) 13 { 14 if (len==0) return 1; 15 for (int i=1;i+len<=n;i++) 16 { 17 int tmp=log2(len+1); 18 if (gcd(rgcd[i][tmp],rgcd[i+len-(1<<tmp)+1][tmp]) == min(rmin[i][tmp],rmin[i+len-(1<<tmp)+1][tmp])) 19 return 1; 20 } 21 return 0; 22 } 23 int main() 24 { 25 scanf("%d",&n); 26 for (int i=1,x;i<=n;i++) 27 scanf("%d",&x),rgcd[i][0]=rmin[i][0]=x; 28 for (int j=1;j<=20;j++) 29 for (int i=1;i+(1<<j)-1<=n;i++) 30 rgcd[i][j]=gcd(rgcd[i][j-1],rgcd[i+(1<<j-1)][j-1]),rmin[i][j]=min(rmin[i][j-1],rmin[i+(1<<j-1)][j-1]); 31 r=2*n; 32 while (l<r) 33 { 34 mid=l+r+1>>1; 35 if (check(mid)) 36 l=mid; 37 else r=mid-1; 38 } 39 for (int i=1;i+l<=n;i++) 40 { 41 int tmp=log2(l+1); 42 if (gcd(rgcd[i][tmp],rgcd[i+l-(1<<tmp)+1][tmp]) == min(rmin[i][tmp],rmin[i+l-(1<<tmp)+1][tmp])) 43 ok[i]=1,ans++; 44 } 45 printf("%d %d\n",ans,l); 46 for (int i=1;i<=n;i++) 47 if (ok[i]) printf("%d ",i); 48 return 0; 49 }

?

轉載于:https://www.cnblogs.com/mrsheep/p/7880795.html

總結

以上是生活随笔為你收集整理的Codeforces 359D Pair of Numbers | 二分+ST表+gcd的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 色干干 | 痴女扩张宫交脱垂重口小说 | 成人无码av片在线观看 | 91精品国产91久久久久久久久久久久 | 国产a视频免费观看 | 日韩影院一区 | 15p亚洲| 夜夜爽av福利精品导航 | 内射国产内射夫妻免费频道 | 中文一区视频 | 国产三级视频网站 | 激情久久av一区av二区av三区 | 亚洲激情在线观看视频 | 午夜视频在线免费看 | 超碰在线日韩 | 淫辱的世界(调教sm)by | 色播亚洲 | www国产无套内射com | 中文久久乱码一区二区 | 青青青青青草 | 精品国产1区2区 | 亚洲第七页| 亚洲精品国产精品国自 | 91 高清 在线 制服 偷拍 | 中文字幕久久熟女蜜桃 | 欧美激情国产精品免费 | 成人av在线网 | 性高潮久久久久久 | 另类第一页 | 亚洲卡一 | 久久一精品 | 91文字幕巨乱亚洲香蕉 | 纯爱无遮挡h肉动漫在线播放 | 日韩国产二区 | 欧美黄色影院 | 无码人妻一区二区三区免费n鬼沢 | 亚洲一区二区三区在线免费观看 | 未满十八岁禁止进入 | 国产av毛片| 自拍欧美亚洲 | 麻豆国产一区二区 | 精品欧美乱码久久久久久1区2区 | 亚洲影视一区二区 | 在线不卡中文字幕 | 超碰狠狠 | 无遮挡裸光屁屁打屁股男男 | 91高潮大合集爽到抽搐 | 午夜精品在线观看 | 中国 免费 av | 久久久久99精品成人片毛片 | 女生扒开尿口给男生捅 | 淫片一级国产 | 哪里可以看毛片 | 色噜噜av | 大尺度摸揉捏胸床戏视频 | 国产精品天美传媒入口 | 日韩免费高清视频网站 | 91麻豆精品国产91久久久久久 | 神马午夜dy888 | 日本少妇全体裸体洗澡 | 国产av电影一区 | 少妇天堂网 | 青青草免费在线 | 国产精品2区 | 国产97av| 国产乱码精品一区二区三区不卡 | 西西人体做爰大胆gogo直播 | 欧美变态口味重另类 | 欧美大色网 | 午夜国产福利在线观看 | 亚洲欧美激情另类 | 悠悠色综合 | 亚洲天堂2013 | 久久综合婷婷国产二区高清 | 韩国av免费观看 | 亚洲国产精品成人综合在线 | 成年人性生活免费视频 | 欧美激情视频一区二区三区不卡 | 国产成人自拍视频在线观看 | 亚洲综合天堂 | 岛国毛片在线观看 | 国产一区二区在线免费观看 | 国产永久在线 | 欧美色老头 | 国产精品久久久久久久午夜 | 国产毛片毛片毛片毛片毛片 | 成人深夜在线 | 牛牛电影国产一区二区 | 国产97色在线 | 国产欧美精品区一区二区三区 | 30一40一50老女人毛片 | 波多野结衣 在线 | 女生扒开尿口让男生桶 | 午夜免费福利在线 | 中文字幕精品无码亚 | 羽月希奶水一区二区三区 | 海角社区在线 | 国产91嫩草 | 国产不卡精品视频 |