題目很長很坑爹 讀了半天才知道什麼意思 原來是數字dp、、、
然而我第一次打時用滾動陣列忘了消除上一維的影響 (本次不能呼叫本次)
然後還要用dt的高精 然後除錯的時候檢視裡不能有賦值語句、、不然直接影響主程式、
另外壓位是很麻煩的、、、 這個題高精要開到100,但不用壓位也可以過、
碼:
#include#includeusing namespace std;
#include#define ll long long
ll f[2][600][150],qian[600][150],ans[150],w,k,shang,zui,now,i,j;
void gjj(int a,int b,int c)
}void fuzhi(int a)
void gjj2(int a)
}int main()
if(ans[i])
}}
其實這個題可以用組合數,但高精乘高精相對難寫、、
k進製數交換
問題進入 k進製數的數字交換問題,就是給出乙個k進製的數,求出其中任意兩個數字交換後的大小 我們先以十進位制數123為例,假如交換第一位和第二位變成213。那麼這兩個數之間存在什麼關係呢,我們注意到百位上本來是1,變成了2之後原數就要增加 2 1 100 十位上本來是2,變成1之後原數就要增加 1 ...
藍橋杯 K 進製數
時間限制 1sec 記憶體限制 128mb 提交 152 解決 46 題目描述 考慮包含n位數字的k 進製數.定義乙個數有效,如果其k 進製表示不包含兩連續的0.考慮包含n位數字的k 進製數.定義乙個數有效,如果其k 進製表示不包含兩連續的0.例 1010230 是有效的7位數 1000198 無效...
2 k進製數
遞推 高精度 f i j 表示共i位且最高位是j的方案數,顯然有只要上一位比它大就可以轉移,所以有f i j f i 1 j 1 f i 1 2 k i 1 也就是f i j f i j 1 f i 1 j 最後特判一下最後一段剩下的w k的就可以。注意高精 include using namesp...