求乙個\(01\)串經過k次以下的操作有多少種方案數。其中,操作\(a\)和\(b\)按照不同順序進行(\(ab\)、\(ba\))視其為不用的操作,即使\(ab\)互相不干擾。
定義合法序列:形如\(10101...10101\)的串,\(i\)維的合法串長度為\(2i+1\)。
操作方法:對乙個合法序列中的所有\(01\)取反。
\(type\)
\(n\le\)
k
\(1\)
\(1\)
\(6\)
\(\le n\)
\(2\)
\(1\)
\(10\)
\(\le n\)
\(3\)
\(1\)
\(17\)
\(\le n\)
\(4\)
\(1\)
\(20\)
\(\le n\)
\(5\)
\(1\)
\(23\)
\(\le n\)
\(6\)
\(1\)
\(23\)
\(\le n\)
\(7\)
\(2\)
\(40\)
\(\le n+1\)
\(8\)
\(2\)
\(40\)
\(\le n+1\)
\(9\)
\(2\)
\(60\)
\(\le n+1\)
\(10\)
\(2\)
\(60\)
\(\le n+1\)
\(11\)
\(2\)
\(60\)
\(\le n+1\)
\(12\)
\(2\)
\(80\)
\(\le n+1\)
\(13\)
\(2\)
\(100\)
\(\le n+1\)
\(14\)
\(2\)
\(110\)
\(\le n+1\)
\(15\)
\(2\)
\(110\)
\(\le n+1\)
\(16\)
\(2\)
\(120\)
\(\le n+1\)
\(17\)
\(2\)
\(120\)
\(\le n+1\)
\(18\)
\(2\)
\(500\)
\(=n+1\)
\(19\)
\(2\)
\(1000\)
\(=n+1\)
\(20\)
\(2\)
\(5000\)
\(=n+1\)
\(21\)
\(2\)
\(10^5\)
\(=n+1\)
\(22\)
\(2\)
\(10^7\)
\(=n+1\)
\(23\)
\(2\)
\(10^9\)
\(=n+1\)
\(24\)
\(2\)
\(10^\)
\(=n+1\)
\(25\)
\(2\)
\(10^\)
\(=n+1\)
首先看到這道題目的資料範圍十分有趣,可以大做文章。
\(type=1,n\le23\)
顯然暴力將\(n^2*2^n\)的爆搜進行狀壓寫成\(dp\)即可通過。
\(type=2,n,k\le120\)
\(n\)比較小,那麼我們可以暴力區間\(dp\)。
我們對一串\(10101...\)列舉一段區間,反轉。
可以觀察之後,串變成了三個不互相干擾的獨立串。
所以可以分開做。
但是這樣是\(n^3\cdot k^3\)的。
考慮優化。
只要列舉被反轉的區間的左端點在**即可。
設g(x)表示左端點\(x\)被砍了一刀,但是右端點不知道在哪的方案數。(右區間要列舉)
最後合併即可。
\(type=2,n\le 10^,k=n+1\)
打表可以發現答案就是\(1*3*5*7*...*(2k-1)\)
即\[\pi_^n2i+1
\]證明也很簡單玄學。每一次取出一段合法序列操作時,都會將這乙個序列減少乙個1。進行\(n+1\)次操作後,整個序列一定是全0的了。接著用組合數拆開、乘法原理乘起來就好。
但是直接階乘無法通不過\(n=10^\)。
其實當\(mod\le 2i+1\)時,這個連乘的式子中會有乙個998244353。
又因為998244353是乙個質數,所以\(1\times3\times...\times998244353\times998244355\times...=0\)!(這個!不是階乘哈)
中間的資料還是會t,分塊打表即可。
2020 11 24提高組模擬
今天分數和昨天差不多,言下之意呢,想必懂得都懂,沒錯我再次爆零了,doge 早上有點困唔,晚上還是要早點睡。t1 想了很久始終覺得是到神仙題,然後發現 t2 是到水題,碼完 t2 肥來看 t1 才發現開頭有一句 oier 那麼多年了我才發現無向無環圖是乙個森林,人沒了人沒了,再想一想不就是樹形 dp...
NOI Online 提高組 序列
點此看題 賽場上掛了是因為不知道每個操作能無限次使用,後來發現這道題挺簡單的。首先我們可以把a aa變成0 00,b bb變成b a b ab a 然後對於t 2 t 2t 2的操作,我們可以直接連邊,在同一連通塊裡的點權值可以互相轉化,我們把每乙個連通塊看作乙個點。對於t 1 t 1t 1的操作,...
2018 07 08 2018提高組 模擬C組
fj準備教他的奶牛彈奏一首歌曲,歌曲由n 1 n 50,000 種音節組成,編號為1到n,而且一定按照從1到n的順序進行彈奏,第i種音節持續b i 1 b i 10,000 個節拍,節拍從0開始計數,因此從節拍0到節拍b 1 1彈奏的是第1種音節,從b 1到b 1 b 2 1彈奏的是第2種音節,依此...