原创 項鍊遊戲
[無link] 對於該策略證明: 1 如果只比較一次,顯然 2 如果比較了k次,證明兩個串前k個元素是相同的,第k+1個元素不同,那麼我選擇1-k-1中任何一個位置開始比較,答案都不會更優,因爲如果新串第K+1個元素更大,那麼顯然K+1個元
原创 牛客小白月賽80C/D又放學辣
C 這麼小的數據範圍,想必胡搞就可以了。 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; int
原创 對於擴展歐幾里得算法的小總結
對於不定方程\(ax+by=c\)有正數解的充分必要條件是\(c|gcd(a,b)\),證明請看裴蜀定理 那麼顯然的,我們只要能解出方程\(ax+by=gcd(a,b)\)然後把解\(\times \frac{c}{gcd(a,b)}\)即
原创 牛客練習賽117 C&D
Link C 分類討論貪心 顯然的,正面考慮怎麼拼團會很麻煩,所以我們從另一個視角考慮,求出可能的最大團數,然後看一看怎麼踢人能夠使落單的最少。 當K爲偶數的時候,顯然最大團數就是\((n+m*2)/k\),而當K爲奇數的時候,顯然男生抱團
原创 雜碎的小知識
sscanf(字符串地址,””,存儲位置),可以從字符串中格式化讀入。 strstr,可以在字符串中找字符串,返回地址(被找的,要找的) strcat,字符串中加內容(被加的,加的) fgets()會把字符串末尾的\n存進去,gets不會
原创 格雷碼生成小總結
生成格雷碼有三種方法, 一:首先是從全0格雷碼開始,依次執行 1.將最低位反轉 2.將最右邊的1左邊的第一位反轉 二:遞歸鏡像構造 1:1位格雷碼是 0,1 2:$(n+1)$位格雷碼中的前 $2^n$個碼字等於$n$位格雷碼的碼字,按順
原创 CF1886D Monocarp and the Set
Link 此題目可以從兩個方向考慮,正着和倒着,倒着考慮比較容易,首先把所有的數放到一塊,如果是'<'或者'>',就是去掉最左邊或者最右邊的數,這樣顯然只有一種可能,答案不變。 如果是'?',那麼顯然可以去掉中間的任意一個,所以答案就是\(
原创 平衡進制問題/對稱的2k+1進制問題
定義平衡\(2k+1\)進制數碼爲\(-k,-(k-1),,,0,,,k-1,k\),請求出一個十進制數的\(2k+1\)進製表示。 對於該問題,解決的思路是首先算出普通的\(2k+1\)進制下的表示,然後分別對每一位進行考慮. 1:這一位
原创 ABC323
Link A 很簡單 B sort+struct+cmp函數 C 排個序舉行 D 顯然的,我們可以從最小的開始進行合併,合併的越多越好。但是可以注意到\(S_i\)的跨度相當的大,這怎麼辦呢? 我們可以使用STl中的map來解決,每一次取出
原创 P2602 [ZJOI2010] 數字計數&HDU 2089 (數位dp)
luogu HDU 最近在複習數位dp 數位dp,就是在一些計數問題的時候按照一位一位的順序依次計算,通常可以採用記憶化搜索的方式 這兩道題就是很典型的數位dp 數位dp通常要記錄是不是頂着上限,有沒有前導零,到了哪一位以及一些特殊的條件要
原创 P3147 [USACO16OPEN] 262144 P
Link 這個題有一個很特殊的點,就是最大值不會超過28,可以想一下最多可以合併多少次。 那麼常規的區間dp是不能使用的,就要採用特殊的形式, 因爲很難的確定應該怎麼轉移,那麼就換一種思路,轉移的對象變成另外一個端點。 \(dp_{i,j}
原创 CF1869D1 Candy Party (Easy Version)
Link 首先我們想這樣的問題,爲什麼強調是\(2^x\) 呢?我們記平均值是 \(avg\),然後可以注意到,應該有一下式子被滿足 \(a_i-2^{x_i}+2^{y_i}=avg\),移項,可以得到\(a_i-avg=2^{y_i}-
原创 CF1869C Fill in the Matrix
Link 首先想一下,如果又一列的 \(MEX\) 是 \(n\) 會有什麼樣的要求?需要這一樣有 \(0~n-1\) 的所有數字並且沒有\(n\) 當我們知道這一點以後問題就很好解決了. 我們應該構造數列的時候,滿足第一行的\(MEX\)
原创 CF 1867 E1. Salyg1n and Array (simple version)
Link 簡單版本的結論還是很容易猜到的。 首先很容易想到的第一步就是儘可能地不覆蓋地取儘可能多地區間,最後剩下了一小塊。 然後在接着原來的指針一個一個地往右問,直到不能問了爲止。 爲什麼這樣是正確的呢?首先,在這樣一步一步地往右查詢的過程
原创 牛客周賽 Round 12 D 小美的區間異或和
Link 首先這個題目的限制卡的很死,最好是O(n)解決,其次當看到異或的時候,就可以考慮按照二進制位進行計算。 對於這個題,我們定義\(dp_i\)表示以\(a_i\)爲最右端的子區間的答案的和 那麼首先可以想到,貢獻給這個答案的有兩個部