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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【bitset 技巧 分块】bzoj5087: polycomp

發(fā)布時(shí)間:2023/12/13 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【bitset 技巧 分块】bzoj5087: polycomp 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

神仙zq發(fā)現(xiàn)了${n^2\sqrt n}\over 32$做法

Description

你有三個(gè)系數(shù)為0,1的多項(xiàng)式f(x),g(x),h(x) 求f(g(x)) mod h(x) 為方便起見(jiàn),將答案多項(xiàng)式所有系數(shù)對(duì)2取模輸出即可 如果f(x)=Sigma(Ak * Xk) 則f(g(x))=Sigma(Ak(g(x))K

Input

一共三行,每行一個(gè)多項(xiàng)式,分別為f,g,h 對(duì)于一個(gè)多項(xiàng)式描述為n P0,P1...Pn其中Pi為0或1 多項(xiàng)式P(x)=P0+P1*x+....+Pn*xn 記n表示多項(xiàng)式最高項(xiàng)的次數(shù),n<=4000

Output

用同樣的格式輸出答案多項(xiàng)式 如果答案為0,輸出0 0

題目分析

陳老師神題x1

觀察到這里多項(xiàng)式的所有操作都是在系數(shù)$\mod 2$的意義下的,因此可以用bitset來(lái)加速多項(xiàng)式的一些操作。例如$O(n^2)$實(shí)現(xiàn)多項(xiàng)式取模。

1 void mod(poly &a, int pos) 2 { 3 for (int i=pos; i>=p; i--) 4 if (a[i]) a ^= c<<(i-p), a[i] = 0;  //我第一次居然把標(biāo)紅地方給忘了 5 }

但是如同很多bitset的技巧題一樣,非常重要的一點(diǎn)是bitset每次整體操作的復(fù)雜度是??$O(size)$? 的。

這意味著$Poly\, +:O(n), \, Poly\, *:O(n^2)$

接下去我們從暴力開(kāi)始談起。

暴力做法 $O({{n^3}\over 32})$

第一個(gè)需要解決的問(wèn)題是:$f(g(x))$。那么我們只需要對(duì)$g(x)$求$k$次冪(也即最暴力地k次自乘),再將這些結(jié)果相加得到多項(xiàng)式$f(g(x))$。至于取模的過(guò)程,則可以在每次multiply的時(shí)候順帶模干凈,這樣最終相加得到的結(jié)果就是在模多項(xiàng)式意義下的答案。

1 void mod(poly &a, int pos)    //pos是a的度數(shù) 2 { 3 for (int i=pos; i>=p; i--) 4 if (a[i]) a ^= c<<(i-p), a[i] = 0; 5 } 6 void mult(poly a, poly b, poly &ret)    //ret=a*b 7 { 8 ret.reset(); 9 for (int i=0; i<=p; i++) 10 if (a[i]) ret ^= b<<i;  //這里就是模擬n^2多項(xiàng)式乘法的過(guò)程 11 mod(ret, p<<1); 12 }

總的代碼:

1 #include<bits/stdc++.h> 2 const int maxn = 8035; 3 typedef std::bitset<maxn> poly; 4 5 int n,m,p; 6 poly a,b,c,tmp,cnt; 7 8 void input(poly &a, int &n) 9 { 10 scanf("%d",&n); 11 for (int i=0, x; i<=n; i++) 12 { 13 scanf("%d",&x); 14 if (x) a.set(i); 15 } 16 } 17 void mod(poly &a, int pos) 18 { 19 for (int i=pos; i>=p; i--) 20 if (a[i]) a ^= c<<(i-p), a[i] = 0; 21 } 22 void mult(poly a, poly b, poly &ret) 23 { 24 ret.reset(); 25 for (int i=0; i<=p; i++) 26 if (a[i]) ret ^= b<<i; 27 mod(ret, p<<1); 28 } 29 int main() 30 { 31 input(a, n), input(b, m), input(c, p); 32 tmp[0] = 1, mod(b, m); 33 for (int i=0; i<=n; i++) 34 { 35 if (a[i]) cnt ^= tmp; 36 mult(tmp, b, tmp);    //復(fù)雜度n^3在這里 37 } 38 while (p>=0&&!cnt[p]) --p; 39 if (p==-1) puts("0 0"); 40 else{ 41 printf("%d",p); 42 for (int i=0; i<=p; i++) 43 printf(" %d",cnt[i]?1:0); 44 } 45 return 0; 46 }

對(duì)系數(shù)按10位分塊 $O({{n^3}\over 320})$

參見(jiàn)法老博客:[BITSET 分塊] BZOJ5087. polycomp

注:md[t]并不一定要等于0.這里的取模多項(xiàng)式最高位對(duì)計(jì)算無(wú)影響。

容易發(fā)現(xiàn)這種做法的復(fù)雜度的階仍然是$n^3$.

對(duì)$i=a\sqrt k+b$分塊 $O({{n^2\sqrt n}\over 32})$

233

轉(zhuǎn)載于:https://www.cnblogs.com/antiquality/p/10507033.html

總結(jié)

以上是生活随笔為你收集整理的【bitset 技巧 分块】bzoj5087: polycomp的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一区二区蜜桃 | 久久亚洲一区二区 | 男女考妣视频 | 日本免费网站 | 成人免费看类便视频 | 欧美日韩一区二区视频观看 | 农村黄色片 | 色猫咪av在线 | 精品国产乱码久久久人妻 | 成人免费一区二区三区在线观看 | 天天影视亚洲 | h片网站在线观看 | 亚洲成人中文字幕在线 | 久久aaa| 拔插拔插海外华人免费视频 | 亚洲综合在线播放 | 久久精品国产99精品国产亚洲性色 | 色涩久久 | 国产一区二区三区黄 | 中文字幕第| 波多野结衣一二区 | 国产成人一级片 | 一区二区视 | 不卡av在线免费观看 | 欧美一级免费大片 | 国产美女黄网站 | 欧美成人一区二区三区片免费 | 成人羞羞国产免费 | 国产精品乱码久久久久久久久 | 美国爱爱视频 | 欧美一区二区三区成人精品 | 天天干视频 | 91网站免费视频 | 日韩欧美精品久久 | 最新av中文字幕 | 两女双腿交缠激烈磨豆腐 | 国产乱码精品一品二品 | 日韩在线视频观看免费 | 日韩视频精品一区 | 性少妇xxxxx 亚洲一卡二卡在线观看 | 国产色无码精品视频国产 | 亚洲无码高清精品 | 日韩在线观看视频一区二区三区 | 一区二区欧美精品 | 激情爱爱网站 | 日韩成人av网 | 亚洲欧美日韩不卡 | 丁香婷婷久久久综合精品国产 | 欧美激情一级精品国产 | 九九九精品视频 | 成人av免费| 久久性感视频 | 性av免费| 成人网页 | 一区二区伊人 | 91亚洲国产成人精品一区二区三 | 成年人在线观看视频 | 亚洲av永久一区二区三区蜜桃 | 一区三区在线观看 | 91久久久久久久久久久久 | 黄页嫩草| 国产专区精品 | 四虎国产成人精品免费一女五男 | 久草免费福利视频 | 超碰cc | 少妇精品无码一区二区 | 午夜激情网站 | 老司机久久| 欧美激精品 | 色婷婷一区二区三区 | 800av在线视频 | 26uuu欧美日本 | jizz俄罗斯| 亚洲成人一区二区在线观看 | 欧美综合久久 | 久久久免费毛片 | 一级做a爱视频 | 成人免费看类便视频 | 91夜色| 国产精品亚洲AV色欲三区不卡 | 呦呦精品 | 在线成人日韩 | 欧洲一级黄 | 极品女神无套呻吟啪啪 | 91一区二区三区 | 四虎免费看黄 | 天堂综合| 日韩久久高清 | 草草影院最新地址 | 午夜私人福利 | 水蜜桃亚洲精品 | 成人精品一区日本无码网 | 免费男女视频 | 2019中文字幕在线免费观看 | 日本一区电影 | 精品免费国产一区二区三区 | 好男人www在线视频 我们的2018在线观看免费高清 | 日本黄在线| 欧美日韩在线直播 |