杭電OJ--2045

題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=2045


這是一道比較考驗算法的題目,他的主要目的是考驗選手的遞推能力。

我一開始的思路是用遞推去進行運算,一直用第一塊涂3種顏色,第二塊能涂2種,以此類推直到最后一塊也為2種(先把第一個符合相鄰的顏色不同全部列舉),再用這個數(shù)減去“在滿足第一個條件的但并不滿足第二個條件的數(shù)量”,就能得到正確的數(shù),但后來我發(fā)現(xiàn)這樣進行在后面要考慮的情況太復(fù)雜,可以去推一推。

? ? 然后我便考慮用遞歸,下面是我的遞歸想法


但是卻被提示時間超時,因此,我改變了想法,用遞歸得出的數(shù)據(jù),使用了遞推


但是,還是被系統(tǒng)說明超時,我覺得應(yīng)該是算法中的數(shù)據(jù)比較大,運算比較麻煩,為此,我簡化了我的算法


這個算法是通過上面的數(shù)據(jù)進行計算;可以說上面的兩種遞推都是由第一種遞歸的數(shù)據(jù)得到的;但是如果我能像師兄一樣看出這個遞推方式,就不用再去寫麻煩的遞歸。

當(dāng)然,這道題還有一個問題,沒錯,那就是int的溢出,所以需要使用float或者double,又或者可以用師兄的long long方式,但一定要保證數(shù)據(jù)不要溢出,不然的到的數(shù)據(jù)是錯誤的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容