思惟題練習專場-數學篇

轉載請註明地址:http://www.cnblogs.com/LadyLex/p/8885799.htmlhtml

太可怕了終於仍是來作數學了……算法

以前只是看過一點點反演相關的東西數組

以前的總結:杜教篩 反演 數據結構

提高的目標是思惟,尤爲是找到關鍵性質做爲突破口的能力。函數

不可能找到一種解決全部問題的通式,尤爲是在數學這裏……因此培養觀察分析關鍵性質的能力就尤其重要學習

這篇博客也將重點記錄每道題的突破關鍵點……但願本身在2天時間裏能有所提升……優化

一,UOJ#62

  這道題是反演套反演套反演233333ui

  這題的經驗:spa

  首先,反演的過程當中不必定要出現$\mu$,咱們能夠直接用for循環$O(nln_{n})$處理。htm

  因此不能被$\mu$侷限住思惟,而要觀察兩個函數之間的相互關係

  第二,在遇到一個形如$f(gcd(i,j))$很差化開的時候,咱們有這樣一種思路:

  尋找/構造一個新函數$g(x)$,使得$f(n)=\sum_{d|n}g(d)$

  這樣的話,咱們能夠把$f(gcd(i,j))$的限制變成$\sum_{d|i,d|j}g(d)$

  這樣也許就能找到新的突破口,好比咱們能夠把$d|i$和$d|j$這兩個條件拆開利用,或者改變枚舉順序……之類的

  第三,數論和線性代數之間也是有密切聯繫的。以前一直沒有注意到這一點

  好比咱們的反演過程其實能夠表示爲乘一個逆矩陣

  可是因爲莫比烏斯反演的矩陣比較特殊,因此咱們能有方便的作法。

  此外,此題也有用線性代數理解的方法:咱們依然使用上面那個$g$函數,定義下面三個矩陣:

  $A_{ij}=[j|i]$,$B_{ij}=[i==j]g(i)$,$C_{ij}=[i|j]$,手推一下能夠發現$f=A*B*C$,

  這裏說一下觀察到的一個小性質

  若是咱們給一個矩陣A乘一個只有對角線上有元素的矩陣B,那麼效果至關於給第i行每一個

  很棒的一點是這三個矩陣的逆都是能夠求的,那麼咱們就得到了$O(n^2)$直接算逆的作法

  最後推式子優化也能夠作到$O(nlog_{n})$

  (不過我我的感受仍是上面三次反演好理解)

  *咱們具體說一下莫反的線性代數形式

  咱們知道,$\sum_{d|n} \mu(d) == [n==1]$

  那麼變一下形,就會有$[m|n] \sum_{d|\frac{n}{m}}\mu(d)==[\frac{n}{m}==1]==[n==m]$

  若是咱們把$n$和$m$當作下標,上面這個就是一個單位矩陣

  接着,咱們枚舉$c=m*d$,給原式繼續變形,則有:

  $ \sum_{c} [c|n][m|c]\mu(\frac{c}{m})$

  如今,咱們找兩個矩陣A和B,使得$A_{cn}==[c|n]$,$B_{mc}==[m|c]\mu(\frac{c}{m})$

  那麼會有$BA==I$,這裏$I$爲單位矩陣

  從上面$f$和$g$的定義咱們又知道$f=g*A$

  兩邊同乘$B$,那麼$f*B=g$,你會發現這也就是莫比烏斯反演的那個式子

後來又看了看vfk老師的ppt

發現一句很棒的話,這種用反演把二元限制關係拆成獨立的思想很不錯

體現有fwt,dft,fmt,以及普通的莫比烏斯反演等等

二,loj2513

md傻逼高斯消元有80分部分分?

邊界判錯了能有20分,真是感動

而後看了一眼徐明寬老師的標程,一眼發現一個叫gauss的函數???

那我仍是本身想吧,這什麼牛逼題啊

而後把矩陣輸出了出來

發現是個下三角矩陣

md那我還n^3個jb啊,這樣直接n^2消元就好了

而後這道水題就作完了,但是我卻打了一上午這個題

怎麼回事?回憶一下,我一開始想了不能過數據的統計方式,加和而後除以總的方案數

打了一個半小時纔打完裸消元,而後交上去,發現不對

而後才改變了計算方式,而後又調了一個多小時才發現那個邊界

而後拿到70分以後發現了性質……

…………可能我與出題人心靈不相通吧……

不過下次作題的時候要先考慮好全部的式子和邊界狀況,

邊打邊想很容易漏狀況

這兩天玩高斯消元發現了新思路:觀察式子/矩陣,能夠獲得$O(n^{2})$甚至$O(n)$的消元

其實就是手動枚舉代替for循環233333


這裏是分割線,此次我效率好低啊……只作了這一點題……

毒瘤之間的交流

接下來就是持續一上午的講題環節

因爲本身是個傻逼,過後才發現有不少精彩的部分都再本身走神的時候錯過了

悟以往之不鑑,知來者之可追……之後要提升效率,不能讓本身失望啊……

感受前幾天作題的時候和別人討論的時候效率極其低下

之後在作題的時候要先避免討論啊……感受本身效率低好有負罪感啊……對不起本身的目標啊……

加油加油!

那麼……來看一看此次講的題目

因爲多項式部分聽的比較認真就先說一下多項式吧……

首先此次我終於解決了一個問題:這些XXT是怎麼構造出來的

感謝RYF的講解,雖然咱們兩個坐到一塊兒討論老是會變得效率低下2333333

如今咱們想要一個複雜度優於n^2的變換,知足有正變換和逆變換(變換矩陣可逆)

怎麼求解呢?因爲咱們變換都是「正變換-->對應位相乘-->逆變換」這樣一個過程

咱們能夠把目標式和計算式兩個正變換寫在等號兩邊,化一下式子,你會發現你構造的變換矩陣應該知足

$T_{k,i} * T_{l,i} = T_{k#l,i}$

這樣就特別棒了,好比,咱們手解個方程能夠解出$fwt$的矩陣

此外,若是下標系統知足循環律的話咱們還能夠利用單位根構造一下,好比$dft$

其實這些變換都是有一個if語句的限制關係擺在那裏讓咱們很難處理

通常限制有mod關係,相等的關係,位運算的關係……

而後,咱們須要結合這個語句尋找把限制轉化的方法

好比,循環卷積的if是mod,咱們利用單位複數根求和的特判找到拆開mod的方法

fwt的或/與變換,咱們把p|q==r變成p屬於r&&q屬於r來拆限制,而後用高維前綴和作變換

反演中的gcd咱們尋找d|i && d|j 來拆限制

二項式反演,咱們用$(1-1)^n$的展開式代替$n==m$,而後作反演等等

感受本身對反演以及變換有了新的認識……

另外彷佛學到了一個新技巧,好幾道題都用了這個變形:$ik=((i+k)^2-i^2-k^2)/2$

另一種形式是 $ik=((i+k)(i+k-1)-i(i-1)-k(k-1))/2$,這種寫法多見於任意長度循環卷積中

不過這個科技我只是略微聽了一下,沒有實際實現過……待補坑

這樣,咱們若是在卷雞的時候有一項的指數有ik堆在一塊兒的狀況,

用這個技巧就能夠在卷的時候把指數中同時存在$ik$的指數拆開,而後就能夠作了

以及lc的題對於差分的應用真的很6啊……

我的感受本身一直不會用差分……就很虛弱

咱們差分的用處有不少,好比維護信息的時候能夠把區間加改爲單點加,區間加等差數列改爲區間加……等等

還能夠用於推式子……若是表達式中有難處理的東西也許能夠差分掉

裂項相消法

錯位相減法

而後還能夠經過差分觀察性質,好比以前那個置換的題,發現轉移式子至關於交換差分的那個

還能夠經過差分處理一些有單調性的題目,好比維護後綴最大值的差分數組的那題

可是……說了這麼多要是真碰到題目仍是不會用23333

反演的部分有一個不錯的題目是srs的bzoj2627:JZPKIL

這題也挺不錯的……我沒想到的一個地方是分解質因子

具體來講,因爲n很大,咱們有意識的把有積性的函數都歸到一塊兒,設他們爲函數$F$

而後枚舉n的質因子,那麼$f(n)=\prod(f(pi^ki))$

而因爲這是反演題因此他有個$mu$……在質因子只有一種的狀況下,mu只有2種可能的狀況有值:0次方的1和1次方的-1

而後咱們的式子就被簡化了,就可作啦!

在式子中有mu的時候這種分解質因子的處理方法彷佛很經典

一我的的數論和循環之美兩道經典題目中都有這種處理方式的應用

另外,yzh的題目也很不錯

我的只能想出30分的部分分,並無推導更多的式子

其實換成枚舉gcd就能夠想出分數更高的算法?

正解是一個……$O(n^{\frac{3}{7}})$的算法,目前沒有研究明白

看起來,一些數論題目(尤爲是這些毒瘤反演)的複雜度分析也是很重要的一環

積分是經常使用的姿式

若是複雜度分析很差,可能會本身打錯解,也可能不敢打正解

不過如今考試彷佛不會特別仔細的算時空複雜度

之後要注意這一點,避免由於這個浪費時間

接着是一些機率和博弈的題目

wq選的題目是一道很不錯的博弈論(bzoj4220)

以前咱們說的博弈論都是sg函數等等模型或者結論的東西

可是事實證實,高端玩家們都不玩結論題了23333

這些博弈論題目更加註重「博弈分析」,即利用人類智慧,分析遊戲的過程,考慮何時遊戲決策會很優秀

真是燒腦啊……分析這個東西很是的考察思惟啊……

對於本題來講,咱們首先能夠分析兩個玩家的決策,寫出一個收益矩陣

而後……咱們會意識到,若是每一個人都使用單一策略,由於兩人都是絕頂聰明的,因此兩我的就永遠不會肯定一個穩定的策略

而後咱們就會意識到咱們應該找一個帶機率的穩定策略,使得兩我的都沒法經過調整策略使得本身收益增長,而對手不動

雖然這就是納什均衡的模型吧……可是這個分析在不知道這個模型的狀況下也是能夠作出來的

在這以後,咱們求出那個平衡點的機率,這樣咱們就得到了兩我的的策略,而後就能夠繼續分析了……

這種博弈分析的題目我以前根本沒見過,分析問題的思惟也沒有特地去訓練過

有時間的話,挑兩道好題訓練一下吧,也許能夠和wq要兩道

接着,ltr的題目彷佛是那種思惟難度很高代碼很短的題目?

課前看到這題就沒有思路……結果講的時候也沒有聽懂,一點思路都沒有

因此GG了……

而後……感受很內疚的是在聽wxhao的機率數據結構(loj2263),

以及wxhui的量子態fwt(uoj328)的時候我走神了……

因此基本處於懵X狀態,沒能從題目上面收穫不少

感受虧死了啊啊啊……此次有3道好題都沒有學習到,不知道還有沒有時間補題……

最後是總共的題表,按講課順序2333

uoj62 zzh

bzoj2627 srs

loj509 yzh

原創題+cf901E lc

loj6271/548 ryf

uoj328 wxhui

bzoj4220 wq

loj552 ltr

loj2263 wxhao

bzoj4820 wzz

再總結一下數學專項的考試題?

如今看來其實大部分都是上面寫過的東西?

明明是考了以後才寫的

有一個題目我以爲特別新奇,就是那個找循環節而且利用了BSGS的題

感受本身作數學題的時候最不會想到的就是循環節了……虛弱……

而且用BSGS找循環節我也是沒有想過的,單知道能夠求A^x=B (mod C)

可是其實那個也是循環節啊……總之本身仍是沒有這個意識

若是有循環節的話咱們就能夠減小本來按題目定義是無窮的計算量

以前有一個題意是作無限次fwt的題也能夠用找循環節作

本身找循環節的意識基本爲0……考試基本想不起來

要培養一下這個意識……

而後有一個奇形怪狀的gauss題目

利用了一大波指望的線性性

那個題思惟難度也挺高的,很nb

最後的總結:

此次數學專題的學習彷佛就結束了……

感受本身仍是很虛,見到題仍是不會作……

可是此次學到了很多新的思路,見到了很多新題……

接下來的話,大概會和最近同樣找一些專題來作

發現有的數據結構題也挺妙的,數據結構不必定都是毒瘤題

之後找一些不錯的數據結構題和制胡竄題目看成專題吧

以上。

相關文章
相關標籤/搜索