1026 Modular multiplication of polynomials
2013-01-20 20:46
465 查看
这道题目是多项式相乘、求模。。按照题目中的规则,可以看出,多项式的加法和减法是相同的结果,那么多项式的除法都可以用加法来计算了。代码的重点是21到24行,36到37行,是如何实现乘和求余的步骤。
#include <iostream> #include <cstring> using namespace std; #define MAXN 2000 struct poly{ int deg,x[MAXN];}; void print(poly f) { cout<<f.deg<<' '; for (int i=f.deg-1; i>0; --i) cout<<f.x[i]<<' '; cout<<f.x[0]<<endl; } void read(poly &f) { cin>>f.deg; for (int i=f.deg-1; i>=0; --i) cin>>f.x[i]; } //r=f*g void mult(poly f,poly g,poly &r) { memset(r.x,0,sizeof(r.x)); for (int i=0; i<f.deg; ++i) for (int j=0; j<g.deg; ++j) r.x[i+j] = (r.x[i+j]+f.x[i]*g.x[j])%2; r.deg = f.deg+g.deg-1; } //m=m%h void mod(poly &m,poly h) { int i; while (1){ for (i=m.deg-1; i>=0&&(!m.x[i]); --i); if (i<h.deg-1){ m.deg = i+1; break; } for (int j=h.deg-1; j>=0; --i,--j) m.x[i] = (m.x[i]+h.x[j])%2; } } void solve() { poly f,g,h,m; read(f); read(g); read(h); mult(f,g,m); mod(m,h); print(m); } int main() { int t; cin>>t; while (t--) solve(); return 0; }
相关文章推荐
- POJ1060 HDU1343 ZOJ1026 UVALive2323 Modular multiplication of polynomials(多项式模2除)
- POJ 1060/ ZOJ 1026 : Modular Multiplication of Polynomials - f(x)g(x) mod h(x)
- zoj1026 Modular multiplication of polynomials
- ZOJ-1026-Modular multiplication of polynomials
- zoj 1026 Modular multiplication of polynomials
- POJ1060 Modular multiplication of polynomials解题报告 (2011-12-09 20:27:53)
- 4.3.2 C - Modular multiplication of polynomials(简单线性表)
- C - Modular multiplication of polynomials
- poj 1060 Modular multiplication of polynomials (多项式问题)
- POJ 1060:Modular multiplication of polynomials
- Modular multiplication of polynomials
- POJ 1060 Modular multiplication of polynomials 逻辑运算
- C - Modular multiplication of polynomials(4.3.2)
- C - Modular multiplication of polynomials(4.3.2)
- poj 1060 Modular multiplication of polynomials 除数是大数的高精度除法
- poj 1060 Modular multiplication of polynomials
- POJ1060 Modular multiplication of polynomials
- POJ 1060 Modular multiplication of polynomials(多项式的加减乘除,除法转化成减法来求)
- poj 1060 Modular multiplication of polynomials 二进制多项式取余式运算。
- poj 1060 Modular multiplication of polynomials