加強版密碼鎖 xxsQAQ

2021-10-22 16:20:38 字數 698 閱讀 7507

暴力列舉肯定超時,考慮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...