2020 11 16提高組模擬 序列翻轉 題解

2022-05-31 14:57:08 字數 2724 閱讀 7138

求乙個\(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種音節,依此...