Ural 1586 Threeprime Numbers(DP)
題目地址:Ural 1586
先定義一個prime三維數組來記錄素數,若i*100+j*10+k為素數,則標記prime[i][j][k]為1,否則為0.這樣對後面的處理很方便。
然後定義一個dp三維數組,dp[n][i][j]表示當前n位的十位數字為i,個位數字為j時的素數個數,這時候狀態要從prime[k][i][j]為素數時轉移過來,所以狀態轉移方程為:
if(prime[j][k][h]) dp[i][k][h]+=dp[i-1][j][k]
代碼如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include