本文主要是介绍abc D - Polynomial division,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
传送门:D - Polynomial division
题目大意:给出A(x)和C(x)多项式的序数,A(x)*B(x) = C(x),求B(x)。
坑:这题不能够顺着想,那样会很复杂,但是一旦把数组倒过来,先求B(m),题意就会明朗很多了。
#include <bits/stdc++.h>
using namespace std;
int main() {int N, M;cin >> N >> M;vector<int> A(N + 1), C(N + M + 1);for (int i = 0; i <= N; ++i) cin >> A[i];for (int i = 0; i <= N + M; ++i) cin >> C[i];vector<int> B(M + 1);for (int i = M; i >= 0; --i) {B[i] = C[N + i] / A[N];for (int j = 0; j <= N; ++j) C[i + j] -= B[i] * A[j];}for (int i = 0; i <= M; ++i) cout << B[i] << " \n"[i == M];
}
这篇关于abc D - Polynomial division的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!