Str 真題解(置換)

2022-09-21 02:48:06 字數 1967 閱讀 9854

目錄題解部分

一種可能的**實現

對於字串 \(s\) 定義乙個變換 \(f(s)\) 表示, \(\forall 1\le k\le \lfloor|s|/2\rfloor\) ,將 \(s\) 中從後往前第 \(k\) 個字元插入從前往後第 \(k\) 個字元和第 \(k+1\) 個字元之間後得到的字串,例如 \(\texttt\) 變換後得到 \(\texttt\) .

現在給出用 \(f(s)\) 變換過 \(k\) 次以後的字串(即執行 \(k\) 次 \(s:=f(s)\)),求變換之前的字串 .

(別罵我,這是原題面)

\(3\le |s|\le 10^3, 1\le k\le 10^9\) .

這裡沒有群論 .

這裡的置換是狹義的,正經置換看 oi-wiki(內含 burnside,慎入)

乙個置換 \(p\) 定義為乙個排列,置換相當於乙個運算,將原來在位置 \(i\) 的東西變到位置 \(p_i\) .

你對乙個東西施加置換 \(p\) 然後施加置換 \(q\),就相當於施加 \(p\circ q\) .

顯然新的置換 \(h=p\circ q\) 由下式直接表示:

\[h_i=q_

\]恒等置換 \(id\) 定義為 \(id_i=i\) .

顯然任何置換 \(p\) 滿足 \(p\circ id = id \circ p\),於是 \(id\) 就是 \(\circ\) 的單位元 .

結合律:

\[p\circ q\circ r = p\circ (q\circ r)

\]為啥?

這裡我們用函式表示下標,因為下標實在太多了 .

\[(p\circ q\circ r)(i) = p(q(r(i))) = p((q\circ r)(r) = (p\circ (q\circ r))(i)

\]q.e.d. 是不是很顯然 .

有單位元,有結合律,顯然可以 \(\log\) 快速冪吧 .

顯然求逆就是把置換逆過來了(類似反函式?)(從施加的角度看,真的很顯然)

原來是 \(i\to p_i\),現在就是 \(p_i\to i\) .

直接模擬算就完了 .

題目要求的 \(f\) 可以看做乙個置換 \(p\) .

於是 \((p^)^\) 就是我們要對字串 \(s\) 施加的置換 .

直接算出來,時間複雜度 \(o(|s|\log k)\) .

因為求逆可以先求也可以後求甚至可以直接拿眼看出來,所以可能的**實現由很多 .

這裡是先快速冪再求逆,應該是好理解的 .

// 增加了注釋

#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;

const int n = 1555;

int k;

string s;

struct perm // 置換

// 初始化為恒等置換

int operator (const unsigned& id)const

int& operator (const unsigned& id) // 元素

perm operator * (const perm& rhs)const // 乘法

perm& operator *= (const perm& rhs)

perm inv() // 求逆

inline void prt() // debug

inline size_t size()const

private:

int n, a[n];

};perm qpow(perm a, int n) // 快速冪

return ans;

}perm create(int n) // 生成題目說的變換 f

ccf csp 歷年真題題解

更新中 ccf csp 2013冬季真題題解 ccf csp 2014春季真題題解 ccf csp 2014秋季真題題解 ccf csp 2014冬季真題題解 ccf csp 2015春季真題題解 ccf csp 2015秋季真題題解 ccf csp 2015冬季真題題解 ccf csp 2016春...

CCF CSP認證歷年真題解

你好啊,我是努力奔跑的追夢人 我始終相信著未來,一分耕耘一分收穫。大學四年,總想做點什麼以證明自己沒有虛度年華。其中寫csp認證題解這件事情斷斷續續地做了好幾次,今天終於完成啦。雖然目前只有前兩道題目,但是隨著自己不斷深入學習,力求全部更新!試題編號 試題名稱 參 202012 1 期末 之安全指數...

歷屆CSP真題題解 CSP刷真題之路

2020 12 題目編號 題解鏈結 csp202012 1 期末 之安全指數 csp202012 1 期末 之安全指數題解 csp202012 2 期末 之最佳閾值 csp202012 2 期末 之最佳閾值題解 csp202012 3 帶配額的檔案系統 csp202012 3 帶配額的檔案系統題解 ...