呼。。
正式開始暑假集訓。
今天一上午還在搞7-7的考試改題
然而,該來該去,tle48過不去了
不知道哪的問題,loj上1w3ms(卡常都沒能救得了)
至於t1和t3,簡單總結一下算了
排序感覺很像分治的樣子
因為要想得到最終的順序序列,它的子串行一定要是順序
具體的,進行dfs,搜尋每一次的操作
我們只有在小區間合法的情況下在交換大區間
最後得到乙個合法的操作方案
如果確定了操作的個數和位置,操作順序改變,又能產生新序列
所以每次dfs找到新的操作個數,得到的貢獻是out的階乘
統計答案即可
放棋子很重要的是
一些確定的棋子所在的行列位置不影響轉移
那麼用g[i][j][k]表示k枚相同的棋子佔任意i行,j列的方案數
g轉移:g[i][j][k]=c(i*j,k0)-sigma(g[l][r][k])*c(i,l)*c(j,r) l<=i,r<=j && !(l==i && r==j)
找到轉移的補償量很重要
那麼今天開始了圖論專項
菜餚製作
t1就栽了
一開始想直接拓撲最小字典序,很快發現顯然不行
那麼又想把 菜的每個限制都聚到一起,進行拓撲排序,也有問題
原來是倒序輸出反向連邊的拓撲最大序
因為小序號要盡量在前,就是說,先一心把小的輸出了,再考慮大序號
比如樣例
5 24 3
製作1之後,雖然當前可製作的4比5小,但我們要先考慮做2,也就是把5做了,再2,4,3
可以發現大的序號選或不選 取決與 它限制的小序號
那麼這其實是「小的限制大的」了
於是反向建邊
這樣得到的拓撲序用倒序輸出的話可以滿足原來的限制
那麼在反圖中我們先做大序號,倒序輸出即可成為 小序號盡可能先做
矩陣遊戲
一道二分圖。。
其實二分圖挺迷的,有時候特別難想,但有時候也挺套路的
我們發現初始在一行/一列的黑白快在交換過程中始終在同一行/列
考慮最終,對角線格仔成黑色
也就是說,每一行都對應乙個專屬的黑快
(這樣無論怎麼交換,最後都是一行專屬乙個)
把行/列分別為二分圖的左右部分
二分圖能完全匹配,就有解
約會因為n個點n條邊,所以每個圖里一定有且僅有乙個環
把這個環縮成點就變成一棵樹,並且樹根就是這個環
在樹上找lca,順便計算深度
那麼對於每次詢問,如果它們的lca不是樹根,那麼分別輸出各自距離lca的距離
如果lca是樹根,還要在環內操作
取環內某個點為起點,順著路線依次排距離
我們把原始圖中的點用並差集指向環中的點
那麼最後就是各自距離lca的距離加上在環內走的距離
一定是乙個人走,乙個人停在原地等才是最優情況
比較環內兩種情況:a走b等,b走a等,按題意特判即可
2019 7 7海亮暑假集訓Day2考試總結
2,這是一道高階差分的模板題 我都不知道什麼是高階差分 首先,我們要知道如下定理。1 把差分字首和就會等於原序列 2 c n,k c n 1,k 1 c n 1,k 3 c n,m c n 1,m 1 這些東西很好證明,所以就不說了 接下來我們說一下怎麼做。py個圖,不打了,那個大括號就表示n 下面...
2019 7 8海亮暑假集訓Day3考試總結
t1,顯然是乙個dfs暴力就可以過,但是我的yes小寫了 沉默兩秒.t2,這一道題我要好好講講 下面是我寫的題解 下面有四種情況 看懂了嗎 看懂了!還是挺好理解的 可是考試時候還是推不出來啊 t3,這一題我一開始想的是分塊 因為下午要講的是分塊,所以我就沒多想 後來正解竟然是倍增 說實話,我的倍增除...
2019 7 15海亮暑假集訓Day10考試總結
t1,我在做的時候竟然沒想到統計方案,這真的有點.70分啊 這一道題首先可以發現,最長上公升子串行和次長上公升子串行的差別就是 如果最長上公升子串行有1個,那麼次長上公升子串行的長度則為最長上公升子串行 1,否則就是最長上公升子串行,那麼我們就可以統計最長上公升子串行和其方案數就可在o n 2 的時...