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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

1026 Modular multiplication of polynomials

發布時間:2025/4/5 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1026 Modular multiplication of polynomials 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? 這道題目是多項式相乘、求模。。按照題目中的規則,可以看出,多項式的加法和減法是相同的結果,那么多項式的除法都可以用加法來計算了。代碼的重點是21到24行,36到37行,是如何實現乘和求余的步驟。

1 #include <iostream> 2 #include <cstring> 3 using namespace std; 4 #define MAXN 2000 5 struct poly{ int deg,x[MAXN];}; 6 void print(poly f) 7 { 8 cout<<f.deg<<' '; 9 for (int i=f.deg-1; i>0; --i) cout<<f.x[i]<<' '; 10 cout<<f.x[0]<<endl; 11 } 12 void read(poly &f) 13 { 14 cin>>f.deg; 15 for (int i=f.deg-1; i>=0; --i) cin>>f.x[i]; 16 } 17 //r=f*g 18 void mult(poly f,poly g,poly &r) 19 { 20 memset(r.x,0,sizeof(r.x)); 21 for (int i=0; i<f.deg; ++i) 22 for (int j=0; j<g.deg; ++j) 23 r.x[i+j] = (r.x[i+j]+f.x[i]*g.x[j])%2; 24 r.deg = f.deg+g.deg-1; 25 } 26 //m=m%h 27 void mod(poly &m,poly h) 28 { 29 int i; 30 while (1){ 31 for (i=m.deg-1; i>=0&&(!m.x[i]); --i); 32 if (i<h.deg-1){ 33 m.deg = i+1; 34 break; 35 } 36 for (int j=h.deg-1; j>=0; --i,--j) 37 m.x[i] = (m.x[i]+h.x[j])%2; 38 } 39 } 40 void solve() 41 { 42 poly f,g,h,m; 43 read(f); 44 read(g); 45 read(h); 46 mult(f,g,m); 47 mod(m,h); 48 print(m); 49 } 50 int main() 51 { 52 int t; 53 cin>>t; 54 while (t--) 55 solve(); 56 return 0; 57 }

?

轉載于:https://www.cnblogs.com/wangaohui/archive/2013/01/20/2868855.html

總結

以上是生活随笔為你收集整理的1026 Modular multiplication of polynomials的全部內容,希望文章能夠幫你解決所遇到的問題。

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