5D 调包
调包
时间限制:6s
空间限制:128MB
题目描述
pzr 非常喜欢多项式,在学习了 NTT 之后,他希望通过编程实现一些简单的代数运算:
给定三个数组 , , 求多项式
- 由于各项系数可能过大,各项系数需要对 取模。
但是,程序刚写完一半的时候, pzr 发现自己还没有做完 "计算机系统基础" 课程的作业,所以他希望你能帮忙 完善 这个程序。
输入格式
第一行一个正整数
第二行 个整数
第三行 个整数
第四行 个整数
输出格式
请调用下方程序给出的 output 方法进行输出。
样例输入1
样例输出1
样例1解释
样例输入2
样例输出2
数据范围
对于 50 % 的数据,
对于 100 % 的数据,
请注意程序的时间效率。
题目提供的代码及说明
下方代码提供了 多项式类 Poly, 可能需要用到的函数或运算符 包括:
构造函数
- 函数原型:
poly(vector< int > v);
- 函数功能:传入一个int类型的vector,分别表示多项式的各项系数。将构造对应的Poly对象
- 时间复杂度:,其中 是多项式的长度。
- 函数原型:
经重载的 * 和 *= 运算符
- 函数原型:
poly& operator*=(const poly& t);
poly operator*(const poly& t);
函数功能:对于两个Poly类的对象,返回两个多项式的乘积。各项系数将自动取模。
时间复杂度:,其中 是参与运算的两个多项式的长度。
- 函数原型:
output函数
- 函数原型:
void output();
- 函数功能:输出这个多项式,用于本题的判题。
- 时间复杂度:,其中 是多项式的长度。
- 函数原型:
使用例: