原创 E1. Asterism (Easy Version) (暴力,二分查找)

題目傳送門 題意: 假設你有x顆糖果,你面前有n個敵人,第i個敵人有a[i]顆糖果,你可以選擇對戰的順序,如果你手裏的糖果不比敵人少,那麼你勝利並獲得一顆糖果,現在我們定義f(x)爲你手裏有x顆糖果時,你能打敗所有對手的方案數,對

原创 F - Frogs (容斥原理,2015瀋陽ICPC)

題目傳送門 題意: n只青蛙,m個石頭,青蛙從1 ~ n 編號,石頭從0 ~ m-1 編號,石頭圍成一個圓圈,每隻青蛙可以跳a[i]步,即當這隻青蛙在編號j的石頭上時,它可以跳到 (j+a[i])%m的石頭上,問你有哪些石頭被青蛙

原创 D 數列統計(組合數學,一種類楊輝三角)

題目傳送門 題意: 找出長度爲l,以x結尾的不下降子序列的個數。 思路: 我們發現長度爲n並且以x結尾的數列的個數爲長度爲n-1,結尾爲(1,2,3,…,x-1,x)的數列轉化而來,我們打表發現有這樣的規律: 然後對比組合數的表

原创 C 不平衡數組(線性dp)

題目傳送門 題意: 給你一個長度爲n的數組,你可以對某個a[i]僅進行一次a[i]=a[i]+1的操作,代價是b[i],爲了使所有相鄰的元素不相等,至少需要要花費多少代價? 思路: 典型的dp[i][0/1]的dp,dp[i][0

原创 P3916 圖的遍歷(反向建邊,bfs)

題目傳送門 題意: 給你一張有向圖,假設A(x)表示從x出發能到達的最大的點,輸出A(1~n) 。 思路: 我們不妨反向建邊,從x出發到的最大的點,就轉換成從大點能走到哪些點,反向建邊之後依次從大的點遍歷,每次成功走到一些點就把點

原创 C. Game On Leaves(貪心,樹上博弈)

題目傳送門 這是一道假博弈 題意: 給你一顆n個點的樹,一個特殊點x,兩個玩家輪流操作。每次操作可以拿走這棵樹的一個葉子節點,並刪除與這個葉子節點連接的那條邊,誰先拿到葉子節點誰就贏了,問是先手贏還是後手贏。 思路: 如果x本身就

原创 E. Johnny and Grandmaster(數學,思維)

題目傳送門 題意: 給你n個數k[i],對於底數p,可以獲得n個貢獻pk[i] ,我們把這n個貢獻分成兩份,不要求均分,問你這兩份的最小差值的絕對值是多少? 思路: 這裏我們用到了冪的性質。首先因爲大的數肯定要比小的數影響大,所以

原创 P1908 逆序對(樹狀數組)

題目傳送門 題意: 給你一個數組,給定逆序對的定義:對於任意一對i,j,有i>j&&a[i]<a[j],問你這個數組有多少個逆序對。 數據範圍: n<=5e5,a[i]<=1e9 思路: 我們用樹狀數組解此題。c[i]表示數字i出

原创 D. Two Divisors(素數篩)

題目傳送門 題意: 給你n個數,對於每一個a[i],如果能找到兩個a[i]的因子d1>1,d2>1,使得gcd(d1+d2,a[i])=1,則輸出這兩個因子,否則輸出-1,-1。 思路: 對於一個a[i],我們把他的最小因子d1除

原创 H - A Simple Stone Game(貪心)

題目傳送門 題意: 給你n個數,我們可以把一個數+1,另一個數-1,這一操作的代價是1,我們至少要花多少代價使得存在一個x,每一個數都是x的倍數?(默認0是任何數的倍數) 思路: 如果存在一個x使得每一個數都是x的倍數,那麼x必然

原创 P1470 [USACO2.3]最長前綴 Longest Prefix(線性dp)

題目傳送門 題意: 給你一個小的字符串集合,你可以無限使用這個集合中的元素,保證其中元素的長度不超過10,給你一個大串,你使用集合中的元素最長可以拼接出多長的前綴? 樣例: A AB BA CA BBC . ABABACABAA

原创 P1507 NASA的食物計劃(二維費用揹包)

題目傳送門 題意: 給你一個揹包,揹包容積爲v,承重量爲m,你有一些物品,他們有各自的體積、質量和價值,在這個揹包體積和承重量範圍內,裝入最大總價值的物品,求最大的價值。 思路: 二維費用揹包的板子題,看做一維01揹包鑲嵌一個一維

原创 D. AND, OR and square sum(位運算,貪心)

題目傳送門 題意: 給你n個數,對於i!=j,a[i]=x,a[j]=y,我們可以進行一種操作:a[i]=x&y,a[j]=x|y,你可以無限的進行這個操作,問你最後Σa[i] (1<=i<=n) 的最大值是多少。 思路: 我們每

原创 P5520 [yLOI2019] 青原櫻 (組合數學)

題目傳送門 題意: 給你一個長度爲n的路,m棵互不相同的樹,要求每兩顆數之間必須留空一個位置,問你有多少種方法種樹。 思路: 因爲兩顆樹之間必須有空隔,一共m棵樹也就是m-1個空隔,我們把這些空隔抽出來,於是還剩下n-m+1個位置

原创 P1962 斐波那契數列(矩陣快速冪模板)

題目傳送門 題意: 對於數列f[1]=1,f[2]=1,f[i]=f[i-1]+f[i-2] (i>=3),求第n項對1e9+7取模的結果。 思路: 之前寫的模板好像有點問題 ,模板題,距陣快速冪加速遞推。 代碼: #includ