这道题目是多项式相乘、求模。。按照题目中的规则,可以看出,多项式的加法和减法是相同的结果,那么多项式的除法都可以用加法来计算了。代码的重点是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相关推荐

  1. poj 1060 Modular multiplication of polynomials

    方法(无证明,lz弱渣请谅解): 以样例来讲:(x^6 + x^4 + x^2 + x + 1) (x^7 + x + 1) modulo (x^8 + x^4 + x^3 + x + 1) = x^ ...

  2. POJ1060 HDU1343 ZOJ1026 UVALive2323 Modular multiplication of polynomials题解

    代码来源:DeathYmz AC的C++语言程序如下: #include<cstdio> #include<iostream> #include<cstring> ...

  3. 基础算法优化——Fast Modular Multiplication

    1. 引言 Yuval Domb 2022年论文<Fast Modular Multiplication> 模乘可以说是任何密码系统中计算量最大的算术原语.本文提出了一种高效.硬件友好的算 ...

  4. 牛客国庆集训派对Day5B电音之王(Montgomery modular multiplication)

    Montgomery modular multiplication 代码出处min_25 杜教暑期时候讲过(我不懂但是我会贴代码呀.jpg),正好牛客网放了camp的题目,那就mark一下 优秀的卡常 ...

  5. poj题目详细分类及算法推荐题目

    DP:  1011   NTA                 简单题  1013   Great Equipment     简单题  1024   Calendar Game       简单题  ...

  6. ACM POJ 题目分类(完整整理版本)

    DP: 1011   NTA                 简单题  1013   Great Equipment     简单题  1024   Calendar Game       简单题   ...

  7. POJ ZOJ题目分类

    POJ,ZOJ题目分类(多篇整合版,分类很细致,全面) 标签: 题目分类POJ整理 2015-04-18 14:44 1672人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: ACM资料(5) ...

  8. POJ,ZOJ题目分类(多篇整合版,分类很细致,全面)

    水题: 3299,2159,2739,1083,2262,1503,3006,2255,3094 初级: 一.基本算法:        (1)枚举 (1753,2965)       (2)贪心(13 ...

  9. PUK ACM题目分类

    acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP:  1011   NTA                 简单题  1013   Great Equipment     简单题  102 ...

最新文章

  1. 浅谈数据分析的魅力和能力要求!
  2. 机器学习圣杯:图灵奖得主Bengio和LeCun称自监督学习可使AI达到人类智力水平
  3. android jni 回调 java_android linux线程通过JNI回调java函数 | 学步园
  4. 我们需要StringBuffer么?
  5. linux周期记录内存信息,linux top显示信息详解
  6. ofstream写文件
  7. Android中SQLiteDatabase操作【附源码】
  8. JQuery DataTables Editor---只修改页面内容
  9. 高精度人脸表情识别(附GitHub地址)
  10. 机器学习--01建立开发集与训练集
  11. 内存管理2(主讲MRR)
  12. postgresql 连接超时_关于超时:如何自动关闭PostgreSQL中的空闲连接?
  13. 腾讯会议开放API接口,为企业打造专属的“腾讯会议”
  14. 通俗地告诉你:为什么Dijkstra算法是正确的?
  15. SQLSTATE[23000]: Integrity constraint violation:1062 Duplicate entry1664187678631531497821000‘ 解决办法
  16. STN:空间变换网络(Spatial Transformer Network)
  17. Html页面Js调用android本地相机和图片
  18. python调用pyd_使用python pyd时出错
  19. Fxfactory插件:复古电影调色插件Sheffield Softworks Vintage
  20. 王者荣耀 微信登录 服务器找不到,王者荣耀微信登录失败怎么办 王者荣耀微信登录失败解决办法...

热门文章

  1. matlab 生成几个聚类点函数nngenc函数
  2. 图像多尺度对比增强算法
  3. OpenCV基本绘图
  4. 利用非递归方法实现二叉树的中序遍历
  5. 计算器的程序代码java_java 简单的计算器程序实例代码
  6. 无法识别的属性 configProtectionProvider的解决方案
  7. 开源——需要分享共享的无私精神
  8. 正确理解RESET类型的INPUT控件实现重置效果的机制
  9. UA MATH564 概率论 Dirichlet分布
  10. UA MATH566 统计理论7 还有一个例子:推导卡方检验