浙江大学软件学院2020年保研上机模拟练习 7-1.Standard Form of Polynomial (20分)
发布时间
阅读量:
阅读量
7-1.Standard Form of Polynomial (20分)


解析:这道题可以认为是简单模拟类别的题目,可以利用dfs来进行求解。
#include<bits/stdc++.h>
using namespace std;
vector<int>roots,cofes;//roots用来存储根,cofes用来存储多项式的系数,cofes[0]代表a0;
int n;
void dfs(int cur, int curpond, int curx){
if(cur == n){
cofes[curx] += curpond;//当cur==n时,代表此时n个括号都选择结束了;
}
else{
//如果选择括号内的值,那么curpond*-roots[cur],curx代表x的幂数,此时不变;
dfs(cur + 1, -curpond * roots[cur], curx);
//如果选择括号内的x,那么curpond不变,curx加1,即幂数加1;
dfs(cur + 1, curpond, curx+1);
}
}
int main(){
cin>>n;
roots.resize(n);//对roots进行初始化,申请n个空间
cofes.resize(n+1,0);//对cofes进行初始化,申请n+1个空间,并且全部赋初值为0;
for(int i = 0; i < n; i++) cin >> roots[i];//输入方程组的根;
dfs(0,1,0);
for(int i = n-1; i >= 0; i--){
cout<<cofes[i];//输出各个系数;
if(i) cout<<" ";//如果不是最后一个输出的系数(即a0) 那么输出空格;
}
}
全部评论 (0)
还没有任何评论哟~
