原创 [BZOJ1074][計算幾何][搜索]SCOI2017:摺紙

OJ掛,鏈自找 一直在想正做的做法,然後當場去世 反着做就好做多了,對於每個詢問點,我們找出其被翻回去後處於哪個位置,然後從這兩個點遞歸下去繼續找,需要及時判斷合法性,即一個點是否處於當前直線的右側,如果在顯然不行,因爲右邊的會被

原创 [LOJ2135][點分樹]ZJOI2015:幻想鄉戰略遊戲

LOJ2135 顯然點分樹維護,維護一個點在點分樹上的子樹權值和,子樹到它的代價和,子樹到它父親的代價和,用加減消掉詢問時當前子樹的影響,這些都是點分樹的套路 修改暴力爬樹 然後詢問先從點分樹根節點開始,算一次根節點的答案,然後和

原创 [LOJ3021][樹狀數組][掃描線]CQOI2017:老C的任務

LOJ3021 這掃描線敢不敢再水一點 好像沒法更水了 Code: #include<bits/stdc++.h> #define ll long long using namespace std; inline ll read(

原创 [BZOJ1009][KMP][矩陣快速冪]HNOI2008:GT考試

BZOJ1009 建出KMP自動機,要求走n步不能到達m點的方案數,矩陣快速冪即可 Code: #include<bits/stdc++.h> using namespace std; inline int read(){ in

原创 20190918CSP-S模擬題解

T1:一張n個點的無向圖,求出經過每個點的最小環 n≤300n\le300n≤300        m≤40000m\le40000m≤40000 暴力是拆邊然後跑dij,正解就是拆點 可以枚舉每個點,做一個最短路樹,然後枚舉非樹

原创 [BZOJ3199][半平面交][最短路]SDOI2013:逃考

BZOJ掛,鏈自找 很容易發現兩個點連線的中垂線就是劃分兩個點控制區域的直線 那對於每個點處理處它與其他所有點的連線的中垂線,加上邊界四條線做半平面交即可知道這個點的控制區域 然後這個點與所有剩下的直線所代表的點連邊,跑最短路即可

原创 [LOJ3083][單調棧]GXOI/GZOI2019:與或和

LOJ3083 很顯然是拆位 那麼對於and,就是統計這個01矩陣中的全1子矩陣個數 對於or,就是統計這個01矩陣中的全0子矩陣個數,再用全集減去它 統計01矩陣的全1子矩陣個數就直接上單調棧即可 大致做法: 記錄矩陣內每一個點

原创 [BZOJ3730][點分樹]震波

鏈接自己找,BZOJ還沒開 也很顯然是點分樹維護,對每個點開兩個樹狀數組,維護點分樹上子樹之和,然後修改詢問仍然暴力爬樹,詢問也是用兩個樹狀數組作差消掉當前子樹影響 Code: #include<bits/stdc++.h> us

原创 190930模擬題解

T1:你在跟朋友玩一個記憶遊戲。 朋友首先給你看了n個長度相同的串,然後從中等概率隨機選擇了一個串。 每一輪你可以詢問一個位置上的正確字符,如果能夠憑藉已有的信息確定出朋友所選的串,那麼遊戲就結束了,你的成績就是所用的輪數。 由於

原创 191106CSP(NOI?)模擬及NOI(CSP?)模擬題解

CSP模擬: T1:求∑i=1n∑j=1mCgcd(i,j)B%mod\sum_{i=1}^n\sum_{j=1}^mC_{gcd(i,j)}^B \%mod∑i=1n​∑j=1m​Cgcd(i,j)B​%mod n,m≤1e10

原创 190921CSP-S模擬題解

T1:lcm 求給定的數集的任意非空子集的lcm之和 數集大小2000,元素大小200 要求lcm,那顯然唯一分解 然後很容易發現200以內的所有素數中,在某個合數的分解中對應冪次大於1的只有200\sqrt{200}200​級別

原创 191101CSP模擬題解

T1:給定n,k,ln,k,ln,k,l,求nnn個數每個取值[0,l][0,l][0,l],其一個子序列和爲kkk的方案數,n,k≤20n,k\le 20n,k≤20 補集轉化,是個揹包,然後狀壓算方案,dp of dp Cod

原创 191005CSP模擬題解

T1:對於每條邊,求刪了這條邊原圖能否成爲二分圖,點邊規模2e6 解法:首先判掉無奇環和一個奇環的情況 一條邊合法當且僅當其屬於所有奇環的交集且不屬於任何一個偶環(會構成新的奇環) 那就弄個dfs樹,對於每條返祖邊樹上差分一下,奇

原创 [BZOJ3659][矩陣樹定理][Best定理]Which Dreamed It

BZOJ3659 這個Best定理的名字似乎是四個人的姓的首字母拼起來的 我還以爲是最好的定理的意思 前置技能:矩陣樹定理(Matrix-tree) 無向圖的生成樹個數即基爾霍夫矩陣的行列式 有向圖的生成樹有兩種:外向的和內向的

原创 191003NOI模擬題解

T1: 題目大意:給你一張圖,每條邊有邊權,要求保留邊權和儘量大的邊使得每個點至多有一條出邊和至多一條入邊,點數200,邊數5000 解法:顯然的二分圖最小費用流,可行流即可不需要最大流 Code: #include<bits/s