原创 codeforces 895D

(組合數學) 題意:給定兩個由全英文字母構成的字符串s1 ,s2 ,保證字典序s1<s2 ,求有多少個s3 ,使得s1<s3<s2 並且s3 爲s1 的字母所組成的一個排列。 思路:   首先統計s1 串有哪些字母,每個字母出

原创 codeforces 895C

(狀壓dp) 題意:給定一個集合,裏面包括n(1≤n≤105) 個數字a[i](1≤a[i]≤70) ,求出這個集合中有多少子集,使得子集內部所有數字的乘積爲平方數。 思路:觀察到a[i] 的範圍比n 要小很多,於是我們可以用一

原创 codeforces 894C

(簡單構造題) 題意:讓你構造一個序列,使得對於所有1<=i<=j<=n 而言的這些gcd(ai,aa+1,...aj) 都在題目給定的輸入數字中。 思路:由於所有gcd() 的組合都給定了,那麼對於i=j 的這些gcd 就肯定爲

原创 hdu 6222

(高精度+找規律) 題意:給定T(T<30000) 個測試數據,每個測試數據包含一個n(1≤n≤1030) ,求大於等於n 的最小數字t ,使得邊長爲t−1,t,t+1 的三角形的面積爲整數。 思路:沒思路就打表,打表千萬不能打

原创 eoj 3451

題意:給定一個長度爲n(n<105) 且僅由小寫英文字母構成的字符串,求它的一個重排列,使得構成的字符串於之前字符串上每個對應位置上的字母都不一樣。 思路:貪心,找到出現次數最多的字母,然後把它優先填到出現次數少的字母那裏,然後其

原创 hdu 6223

(搜索+剪枝) 題意:給定n(n<2000000) 個點的帶環單向圖,每個點i 有一個權值Di(0≤Di≤9) 且只有一條出邊連接着 點(i2+1)modn ,求從哪一點出發,經過n 個點後,這條路徑上組成的數字最大。 這個題目

原创 hiho 1654

(簡單搜索) 題意:4x4的棋盤上有X和Y兩種棋子各若干枚,求最少移動多少次棋子可以達到勝利局面:有4個X或者4個Y連成一行、一列或者對角線(兩條對角線都算勝利)。 思路:直接bfs搜索寫起來~(在移動棋子位置後忘了移動回來到原

原创 hdu 6219

(計算幾何 + DP) 題意:共有T(T<100) 組測試數據,每個測試數據包含平面上n(n<50) 個點的座標,求它們能組成的最大空凸包的面積。(即這個凸包內部不包含任何其它的點) 思路:枚舉凸包的左下角點,然後DP找出以這個

原创 算法題中求解絕對值最值的技巧

引言 現在算法題中,有時會遇到求解絕對值最值的問題,比如給定一個數組,求解abs∣ai−aj∣abs|a_i - a_j|abs∣ai​−aj​∣的最大值。諸如此類問題,暴力解法是用O(n2)O(n^2)O(n2)時間複雜度遍歷i

原创 Leetcode 1320 (一維DP)

題意 給定一個英文單詞,用兩隻手指去碼字。每隻手指移動所需要的代價爲鍵盤上兩字母之間的距離,求碼完整個單詞所需要的最小代價。 解法 最直觀的想法是,運用dp[idx][pos1][pos2]dp[idx][pos1][pos2]d

原创 codeforces 894E

(強連通+dp) 題意:給定一個單向邊的圖(n,m<106) ,每條路上都有wi 個寶石,每次經過一條路可將這條邊上的寶石撿完,第i 次經過該路,能撿到的寶石數量爲wi−i∗(i+1)/2 ,直到寶石數目爲0 。 問從指定一點出

原创 codeforces 878D

思維題(看了題解後自己又畫了半天才搞懂…) 題意:給出k (12 )個生物,每個生物有n (105 )個特性,然後q (105 )個操作,每次操作可以任選之前的兩個生物產生一個新生物(特性爲這兩個生物的特性的max/min值),也

原创 博客開通啦

  這個博客的開通,很大原因是我銳大哥的過去一年來共23次的強烈推薦。   想想其實開通也挺好的,記錄下自己一步步的成長經歷;其實這個博客也便於自己日後複習知識點(畢竟自己手寫的字太醜了);同時也是因爲愛情,因爲虛榮心,因爲in

原创 codeforces 894D

(對二叉樹有感覺的話,思路還是出得蠻快的) 題意:給定一個n 節點二叉樹(n<106 ),每條邊上有一個權值,然後給出m (m<105 )個詢問,求Ai 節點在Hi 距離內能到達的樹上哪些節點,求到達這些節點經過的距離之和。 思

原创 codeforces 895E

(線段樹+2個lazy標記) 題意:先給定n(n<105) 個數字ai(ai<109) ,再給出q(q<105) 個操作,操作分兩種類型,1.將這些數字裏[l1,r1] 區間中任意一個數字和[l2,r2] 區間中任意一個數字交換