原创 AtCoder ABC139E League 判dag dag上簡單dp

有n(1000)n(1000)n(1000)個人, 每個人都要和其他n−1n-1n−1個人進行比賽, 每個人都規定了他參加的n−1n-1n−1場比賽的順序, 問是否有一種比賽順序能滿足所有人心意. 此外, 每天可以安排多場比賽,但

原创 B - Marbles Gym - 101908B SG函數

有一堆棋子在棋盤上, A和B輪流走, 每次可以取一個棋子向上或向左走任意步, 或者向上以及向右走x步, 最先把一個棋子移動到0 0的人贏, 問A能不能贏. SG 保證當前狀態的子狀態的sg都已經求出. 把子狀態的sg放入集合, 第

原创 CF 1228 C 數論 D 圖論/hash E dp

C Primes and Multiplication 給出x(1e9)和n(1e18), 對於x的所有質因子y, 對於1到n每個數計算最大的是y的冪次的因子z, 對於這些z求乘積. x的質因子很好求. 第二步我們總不能枚舉1到n

原创 CF 1220 D數論E圖論/tarjan/dfs

D Alex and Julian 小a拿到一個集合就會把這裏面的數當作步長, 在圖上對編號之差爲合法步長的點連邊. 這樣就會連無數條邊. 問題是現在給出一個集合, 保留其中儘量多的數, 保證交給小a之後他會生成一個二分圖. 很簡

原创 CF 1047 C Enlarge GCD gcd

題意: 給出N(<=3e5)個數, 每個數不超過M(<=1.5e7), 問最少去掉多少個能讓這個數組的gcd變大, 不可能的話輸出-1. 思路: ①: 題意等價於, 這個數列全都除以一開始的gcd, 得到B集合, 求B的最大子集C, 使得

原创 牛客 19多校7 H 數位dp

給出A, B, C, 在1~A中找一個數x, 1~B中找一個數y, 使得x&y>C或x^y<C, 問這樣的二元組(x,y)有多少對. 原來數位dp可以這麼騷的...雖然大佬們說這是個裸題... 因爲^和&運算都是位運算, 所以把ABC都分

原创 CF 225D snake 貪喫蛇NB 搜索 狀壓

給出一個地圖, ?是1~9表示蛇頭到蛇尾, @表示?, 問最少多少步能喫到?. 此外, ?不能重疊, 但如果?頭過來的瞬間尾巴走了, 那也不算重疊. 其實這個題就是普通的BFS的變形, 另外要注意一些細節. Ⅰ 結構體中保存當前?的狀態,

原创 GYM 102059 G Fascination Street

G Fascination Street 參考 給出一串n(2e5)個燈, 每個燈點亮可以照到相鄰三個位置, 每個燈點亮都有不同的花費, 現在可以交換k(9)次燈的位置, 求把所有n個位置都照到的最小花費. 交換的肯定是一個亮的燈

原创 最小生成樹

給出一個圖, 其中一些特殊點只能連一條邊, 問最小生成樹的權值. 我們可以發現, 生成樹上一個點如果只能連一條邊, 那麼他肯定是葉子結點. 有兩個思路: 用非特殊點跑最小生成樹, 最後再把特殊點接上就行了. 這是賽後聽到的思路.

原创 CF 1214 D Treasure Island 網絡流

有一個n∗mn*mn∗m的格子, 一個人起點(1,1)(1,1)(1,1), 目的點是(n,m)(n,m)(n,m)可以往右/往下走, #爲不能走的點, 問做少把幾個.改成#(不能改起點和終點)能讓這個人不能走到. 當然最多改2個

原创 CF 1230E Kamil and Making a Stream

給出一棵樹, 點上有權值, 對於每個點, 求它和所有後代節點的GCD的和. 一開始的思路: 用當前節點更新祖先節點…然而對於每個點會收到n個點的貢獻. 實際上, 如果我們用當前節點更新後代節點的貢獻, 那麼每個點只會收到log(n

原创 GYM 102059

G Fascination Street 參考 給出一串n(2e5)個燈, 每個燈點亮可以照到相鄰三個位置, 每個燈點亮都有不同的花費, 現在可以交換k(9)次燈的位置, 求把所有n個位置都照到的最小花費. 交換的肯定是一個亮的燈

原创 LightOJ1151 Snakes and Ladders 高斯消元 期望dp

給出111到100100100共100100100個格子排成一行, 到達一些格子時會瞬間轉移, 每次投骰子來確定走的步數, 如果走出格子之外就重新投, 問走到100100100號格子的期望步數. 如果每個格子瞬間轉移只會向後的話,

原创 CF 1208D Restore Permutation 線段樹

現在藏起來一個1到n(2e5)的排列, 對於每個位置i, 給出a[1]到a[i-1]中小於a[i]的數的和s[i], 讓我們求這個排列a. 首先我們找找1的位置. 因爲沒有數比1小, 所以不論1在哪裏, 它的s肯定是0; 而如果s

原创 樹上揹包入門 HDU 1561 O(n*V^2)的做法

有依賴揹包是有多個主件, 每個主件有多個附件, 但是附件不會再有自己的附件. 而樹上揹包就是構成了連續依賴的揹包, 他們的關係是一棵樹(保證不會循環依賴, 每個物品只會依賴最多1個物品)(取了根節點才能取第二層的節點, 取了x節點