龍貝格積分的基本思想就是先利用復(fù)化梯形公式把曲線劃分若干小區(qū)間,把每個小區(qū)間當(dāng)成梯形來求和;然后每次將區(qū)間數(shù)加倍,直到收斂到一定精度范圍內(nèi)為止。
程序基本參照計算方法的書寫的,但是開始寫完之后發(fā)現(xiàn)巨慢。找了網(wǎng)上一個版本和我的比較下,發(fā)現(xiàn)我們倆只是二維數(shù)組的兩個維代表的含義互換了,但是時間復(fù)雜度完全相同。后來改了一下發(fā)現(xiàn)居然快很多,囧。之后可以過JOJ 2457。但是仍然過不了HOJ 2539。一旦把精度調(diào)高就TLE,郁悶。
后來找到了liuyu大牛曾經(jīng)寫過的romberg積分模板,發(fā)現(xiàn)巨快,研究了一下發(fā)現(xiàn)他把那個T數(shù)組巧妙的壓縮成了一維,但是總時間復(fù)雜度不變,不知道為什么那么快,也許是因為二維數(shù)組遍歷的時候?qū)ぶ繁容^耗時間吧。按照他的方法改了下,仍然過不了,但是這回是WA。找了很久發(fā)現(xiàn)在更新的時候每次乘以定值就會WA,用pow才可以過,估計是數(shù)據(jù)的精度有問題。改了之后終于過了,速度很快:-)
posted on 2009-05-20 19:56
sdfond 閱讀(968)
評論(0) 編輯 收藏 引用 所屬分類:
Algorithm - Ad Hoc