暴力列舉肯定超時,考慮dp。
f[i][j]表示將第i個撥盤,撥成j這個數字所需要的代價(時間)。
尋找子問題。肯定是f[i-1][k]+。。。。
肯定是去看上乙個撥盤撥到數字k所需要的最短時間+我這個i撥盤撥到數字j所需要的最短時間,兩個一加就是f[i][j]
考慮k的範圍
首先第1個撥盤,最起碼是0,第二個撥盤最起碼是1,第三個撥盤最起碼是2,那麼第n個撥盤最起碼是n-1.所以k=第i-1個撥盤-1,=i-2;
因為我是j,因為是嚴格遞增序列,所以k最大只能為j-1;
考慮j的範圍
j就是我們要撥成的那個數字。因為第n個撥盤最起碼是n-1,所以j最小是i-1。因為嚴格遞增序列,你不能最大一下到99,不然後面的人就沒有位置了,所以要留位置。當前是第i個撥盤,後面還有n-i個,所以j最大為99-(n-i)
#include using namespace std;
typedef long long ll;
int n,a[105];
ll ans=1<<30;
ll f[105][105];
ll dj(int x,int y)//把a[x]撥成y所需要的代價(時間)
int main()
題解 烷基計數 加強版 加強版
題目傳送門 問樹大小為 n 每個節點的兒子個數 le 3 的本質不同樹的個數。不考慮兒子之間的順序。n le10 5 因為這個題跟多項式關係比較大,所以就沒有放到 polya 定理學習筆記裡面。我們可以看出,假設我們設 f x 表示答案的普通型生成函式,那麼,我們就有 f x x frac 1 個人...
電子密碼鎖
最近剛寫乙個電子密碼鎖的程式,使用verilog語言實現的。剛剛學這個語言,練習一下。感覺這個語言不是很難,而且通過學這個語言,感覺自己還能通過自學掌握一門語言,挺有成就感的。雖然現在只懂verilog最基本的一些語法,但是通過不斷練習我會不加深入的掌握它,也有信心自學更多的。加油!密碼輸入 刪除模...
實用密碼鎖
unsigned char num,i,j unsigned char passwordtemp 16 最大輸入16個 unsigned char inputtimes 密碼輸入錯誤次數 unsigned char passwordlength,plen 輸入密碼長度,實際密碼長度 bit flag...