2012年5月9日
摘要: 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) 阅读全文
posted @ 2012-05-09 13:33 Staginner 阅读(185) 评论(0) 推荐(0) 编辑
摘要: URAL_1001 因为数字不算很大,精度要求也不高,所以可以直接调用sqrt,否则可以用手算开平方+高精度来处理。#include<stdio.h>#include<string.h>#include<math.h>#define MAXD 300000double x[MAXD];int main(){ int i = 0; while(scanf("%lf", &x[i]) == 1) ++ i; for(-- i; i >= 0; i --) printf("%.4f\n", sqrt(x[i]) 阅读全文
posted @ 2012-05-09 12:46 Staginner 阅读(137) 评论(0) 推荐(0) 编辑