原创 2018中國大學生程序設計競賽 - 網絡選拔賽--HDU 6447 YJJ's Salesman

題意: 一個人要從(0,0)的村莊走到(1e9,1e9)的村莊,有些村莊有 w 值。他只能斜着走才能獲得那些值,問你他最多可以獲得多少值。 題解: 如題我們可以得到 dp 公式 :dp[i][j] = max(dp[i-1][j-1]+w

原创 2018中國大學生程序設計競賽 - 網絡選拔賽--HDU 6438 Buy and Resell

題意: 有 n 個城市,每個城市可以買一個價值爲 ai 的東西或者賣一個價值爲 ai 的東西,假設你一開始有無數的錢,問你經過這些城市最多可以賺多少利潤。 題解: 有利潤就要當前的值大於你買進去的值,比如第一個樣例:(10-2,9-1)

原创 2018 Multi-University Training Contest 10--HDU 6435 Problem J. CSGO

題意: 有 n 個主武器和 m 個副武器,每個武器都有是 s 價值和 x[i] (i = 1...k)屬性,通過公式求出一種主武器和副武器組合的最大值。公式: 題解: abs(x[i]-x[j]) = x[i]-x[j] 或者 x[j]

原创 2018 Multi-University Training Contest 7--HDU 6395 Sequence

題意: 給出一個公式,讓你求出第n個數值是多少。 題解: 看到公式第一個就想起了矩陣乘法,因爲很像斐波那契數列(可以用矩陣乘法得到),但是後面有個尾巴,所以要把尾巴考慮進去。 推出公式如下: 這樣我們只考慮左矩陣的次方,再乘上右矩陣就是

原创 2018中國大學生程序設計競賽 - 網絡選拔賽--HDU 6446 Tree and Permutation

題意: 有 n 個點標爲 1 ... n,對其全排列,按排列後順序走,求其路徑總和。 題解: 通過對樣例全排列發現答案就是邊的使用次數乘上權值的求和。 如果我們考慮一個邊,除去這個邊的兩點,對其 n-1 個點全排列(把邊想象成一個點),正

原创 2018 Multi-University Training Contest 8--HDU 6406 Taotao Picks Apples

題意: 給你一個長度爲 n 的數組,有 m 次操作:第 p 個數爲 q,求現在這個數組的最長遞增子序列長度(從第一個開始,算出答案後第 p 個數要回到原來的值)。 題解: 如果我們要修改第 p 個數,要考慮區間[1, p-1]裏的最長遞增

原创 2018 Multi-University Training Contest 10--HDU 6437 Problem L.Videos

題意: 有 k 個人看 m 個視頻,一天有 n 個小時,每個視頻只能一個人看,看完一個視頻那個人會獲得 W 快樂值,視頻有自己的限制種類,視頻種類相同一起看會扣 w 快樂值。問一天這羣人最多可以獲得多少快樂值。 題解: 我們可以想象 k

原创 CodeForces 1025 B.Weakened Common Divisor

題意: 給你 n 對數字,讓每對至少出一個數字來求最大公倍數 ,如果最大公倍數是 1,則輸出 -1,否則輸出任意符合的最大公倍數。 題解: 一個數的倍數與他的因子有關,所以兩個數相乘就會得到一個數包含他的所有因子(不會重複),根據這個性質

原创 2018 Multi-University Training Contest 8--HDU 6397 Character Encoding

題意: 假設有 0 到 n-1種數字,隨機選取(可以重複),得到的和爲k組合數量有多少種。 題解: 設想一個 n 爲3的情況: m\k 0 1 2 3 4 5 6 7 8 1 1 1 1 0 0 0 0 0 0 2 1 2 3 2 1 0

原创 2018 Multi-University Training Contest 5--HDU 6356 Glad You Came

題意: 給你一個函數,用它求出長度爲3*m的數組,a數組一開始全爲0,有m個操作:l, r, v都可以用公式算出來,[l, r]區間內把所有小於v的a[i]替換成v。求出 [1,n]區間內的所有 (i*a[i]) 的異或和。 題解: 利用

原创 2018 Multi-University Training Contest 7--HDU 6396 Swordsman

題意: 有n個怪物,每隻怪物都有(有k種防禦屬性,分別爲 ai,1......ai,k),你是主人公,有k種攻擊屬性 v(1......k)。 當 v[i] >= a[id][i] ,i ∈ [1, k] 時,該怪物可以被殺死,你的攻擊屬

原创 2018 Multi-University Training Contest 4--HDU 6336 Problem E. Matrix from Arrays

題意: 給你一個n,然後輸入a[n]數組,按照題目構建一個矩陣,有q個查詢,每一個查詢有x0,y0,x1,y1,求該矩陣區間的和。 題解: 打表可以發現矩陣是由長度2*n(奇數是n)的小矩陣構成。 由圖得:ans = S(x1,y1)

原创 2018 Multi-University Training Contest 9--HDU 6415 Rikka with Nash Equilibrium

題意: 有一種由[1, n*m]不重複填充的矩陣,並且只有一個點在行和列上是最大的。求這種 n*m 矩陣有多少種。 題解: 最大值一定是 n*m,我們可以把他放在任意格子,但是我們可以發現,無論放在哪裏他的矩陣都可以變形會最大值在(1,1

原创 2018 Multi-University Training Contest 6--HDU 6373 Pinball

題意: 求出小球在斜面反彈幾次。 題解: 通過對速度的直角座標系分解,我們可以知道沿着斜面方向的初速度爲 v0 = sqrt(2*g*H) * Sin(a) (2gH = v0*v0 - 0*0),然後對重力進行分解可以得到沿着斜面方向的

原创 2018 Multi-University Training Contest 5--HDU 6351 Beautiful Now

題意: 給你一個數字n(1<=n<=1e9),通過k次交換其中的數字使其達到最小和最大。 題解: 如果從第一個就開始往後面排序,最小步驟達到最小是 n的位數-1 ,所以我們可以讓 k >= n的位數-1 情況都輸出排序後的最小,最大值。