URAL_1059
这个题目理解起来有点蛋疼,后来看了NOWCOW的翻译之后发现是将这个多项式写成“后缀表达式”的形式,接下来就是如何构造解了。
由于得到X^N那一项至少要N次乘法,得到最后的多项式也至少要N次加法,而恰好是可以构造出需要N次乘法和N次加法的表达式的,所以构造成(((0*x+1)*x+2)*x+3)…这样就是最优的了,将这个表达式翻译成“后缀表达式”就可以了。
#include<stdio.h> #include<string.h> int main() { int i, n; while(scanf("%d", &n) == 1) { printf("0\n"); for(i = 1; i <= n; i ++) printf("X\n*\n%d\n+\n", i); } return 0; }