原创 FatMouse and Cheese(DP+記憶化搜索)

題意:給你一個N*N的的矩陣,要你找到一條最大的路徑,並且每次只能水平或者垂直的走不超過k步,並且下一步的值要大於上一步的值,要你輸出路徑的最大值。 思路: 這個題不太難想到dp[ i ][ j ]可以由四個方向轉移過來,但是

原创 Borrow Classroom(LCA最近公共祖先)

題目描述 每年的BNU校賽都會有兩次賽前培訓,爲此就需要去借教室,由於SK同學忙於出題,這個事情就由小Q同學來跑腿。SK同學準備從宿舍出發,把借教室的單子交給小Q同學讓他拿去教務處蓋章,但是何老師突然發現SK同學好像借錯教室了,

原创 HDP1176 免費餡餅(數塔DP)

免費餡餅 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 80950

原创 Codeforces Global Round 7(A - D題解)

題意: 給你一個數n,要你找一個數>0並且它的位數等於n,並且不能被它自己的數整除(比如23,不能被2,和3整除)。 思路: 一開始構造了一個2222(n-1個2)3,wa了兩發(哭了)。後面想起一個定理,只有各位數之和能被3

原创 FatMouse's Speed(DP+LIS變種)

題意: 給你n個二元組(u,v),要你求最長的u是遞增,v是遞減的子序列。 思路: 這個題乍一看不就是個最長上升子序列嗎?然後滿足一個約束v是遞減的求不就行了? 思路確實是這樣,不過需要預處一下按u遞增v遞減排序(因爲滿足約束

原创 樹(DP or 組合數學)

題目描述: shy有一顆樹,樹有n個結點。有k種不同顏色的染料給樹染色。一個染色方案是合法的,當且僅當對於所有相同顏色的點對(x,y),x到y的路徑上的所有點的顏色都要與x和y相同。請統計方案數。 輸入描述: 第一行兩個整數n,k

原创 Fast Food(DP)

題意: 給你n個飯店在橫座標軸上的位置,要你在這些飯店旁邊建立k個倉庫,使得所有飯店到最近的倉庫距離之和最短,要你輸出這個值。 思路: 這個題可以認爲是管道問題的擴展版本,也可以認爲是矩陣鏈乘的變種。 定義dp[ i ] [

原创 D. Multiset(權值線段樹 or 樹狀數組+二分)Educational Codeforces Round 87 (Rated for Div. 2)

題目大意: 給你一個長度爲nnn的序列,以及qqq次詢問qiqiqi,如果qi>0qi>0qi>0,在序列中插入qiqiqi,如果qi<0qi<0qi<0,在序列中刪除第∣qi∣|qi|∣qi∣大的數,問你qqq詢問後,如果序

原创 Codeforces Round #643 (Div. 2)(A-E)題解

題目大意: 給你一個a1a1a1,要你求akakak,其中ai=ai−1+maxdigit(ai−1)∗mindigit(ai−1)ai=ai-1+maxdigit(ai-1) * mindigit(ai-1)ai=ai−1+

原创 NC53681 「土」巨石滾滾(貪心)

NC53681「土」巨石滾滾 題目描述 帕秋莉掌握了一種土屬性魔法 她使用這種魔法建造了一個大型的土球,並讓其一路向下去衝撞障礙 土球有一個穩定性x,如果x < 0,它會立刻散架 每衝撞一個障礙,土球會喪失ai的穩定性,衝撞之後,

原创 Codeforces Round #642 (Div. 3)(A-E題解)

這場雖然只寫了4題但是打的還是比較舒服的,除了T2粗心WA一發,其他都是一次AC還是比較舒服,開局也不錯,20分鐘切了兩題。 題目大意: 要你構造一個長度爲nnn的數組,使得它們的和等於mmm,並且要你最大化∑i=0i=n−1

原创 F. SUM and REPLACE(線段樹+思維+剪枝)

題目大意: 先定義一個D(i):i的因子個數D(i):i的因子個數D(i):i的因子個數,現在給你一個序列,你要做兩種操作,操作1:將[l,r]中的ai用d(ai)1:將[l,r]中的ai用d(ai)1:將[l,r]中的ai用

原创 D Bash and a Tough Math Puzzle(線段樹+思維+剪枝)

題目大意: 給你一個序列,你要在這個序列上進行mmm次操作,操作1:l,r,x1:l,r,x1:l,r,x表示判斷是否序列區間[l,r][l,r][l,r]中所有數的gcd()=xgcd()=xgcd()=x,如果不等於你可

原创 D. The Child and Sequence(線段樹+思維)

題目大意: 給你一個序列,你要在這個序列上進行操作。 操作1:1:1:給定區間[l,r][l,r][l,r],對序列中這個區間的所有數ai,i=[l,r]ai,i=[l,r]ai,i=[l,r]求和。 操作2:2:2:給你區間

原创 Codeforces Round #638 (Div. 2)(A-D題解構造題殺我)

題目大意: 有一堆21,22,23,...,2n2^1,2^2,2^3,...,2^n21,22,23,...,2n的數,現在要你把這些數分成兩堆,使得每堆的和的差最小。 思路: 注意到2n>21+22+...+2^n>2^1+