原创 ural 2073 - Log Files 模擬

題意:給出一個人在一場比賽的提交記錄,按照格式輸出,這個題基本看輸入輸出就能看懂題意了。 算是比較簡單的模擬,沒什麼坑,只要注意一個題AC以後再提交的時候不要修改成X就好。 #include <iostream> #include <cs

原创 ural 2072 - Kirill the Gardener 3 - dp

題意:有n朵花,要求按照權值遞增的順序澆水,澆水一次話一個時間,走一個單位長度花費一個單位時間。 一共n朵花,那麼可以先計算出走路用的時間,然後加上n就是總時間,對於權值相同的所有花,就可以只考慮兩個端點,這樣中間的一定會路過,先走左端點

原创 ural 2071 - Juice Cocktails

題意:有n杯調和果汁,用A,B,P三種果汁調,每一次可以往一個連續區間添加一種果汁,問最少需要加多少次。 n很大,最大10的五次方,但是狀態數量很有限,只有7種,相同的果汁肯定要連續放才能使添加次數最少,而且連續相同的果汁不管有多少,總是

原创 POJ-2773 Happy 2006(容斥原理+二分結果)

  題意是輸入m和k,求第k個和m互素的數,m (1 <= m <= 1000000), K (1 <= K <= 100000000),數據比較大 首先,可以求出m所有的素因子,最多不超過十個。如果我們已知一個x,可以根據容斥原理計算出

原创 Leetcode 10 Regular Expression Matching (dp)

給出兩個字符串s、p,'.'可以匹配任意一個字符,'*'可以將其前一個的字符重複任意次數,也可以重複0次(ab*可以表示ab、abb,也可以表示a),問是否可以匹配成功。 應該算是比較明顯的動態規劃吧,一看就猜是動態規劃,不過leetco

原创 LeetCode 4.Median of Two Sorted Arrays(雙二分)

題意很簡單,就是給兩個排好序的數組,要求這兩個數組的中位數,題目要求複雜度O(log(n+m)),雖然我知道題目數據不可能卡到這個程度的,這樣的數據量C++早爆內存了,但是我很倔強,於是…… 說重點,這個題我的大體思路就是對第一個數組二

原创 ACM生涯回顧總結

         從初入大學對算法幾乎一無所知,到ACM區域賽銀獎,這兩年多的時間,我在ACM隊學到了很多。          進入大學以前,我們初中高中都曾經講過VB,而我對編程的瞭解,也僅限於交換兩個數字和三種基本排序,但排序是沒寫過

原创 大連區域賽總結

    這次大連站的比賽,我自己內心的目標本就是銅牌,最後能拿到銀牌,還是很驚喜的,我認爲這樣的結果是團隊協作、心態,還有運氣共同作用的結果,我覺得這一次我們這三方面都非常好,在去大連的路上我就跟他們說我們就當平時組隊賽打就好,不要想太

原创 2017-4-18 CCCC決賽總結

首先,感謝嵩神和可神的指導(ps:如果不是看了羣我也不會寫這個的,真的不是不知道感恩,因爲我以爲總結的重點在比賽啊)。其實他們說了那麼多,也有說怎樣練acm,也有說找工作考研,我印象最深的其實是嵩神不經意的一句:你覺得痛苦緊張纔是正常的,

原创 uva - 1629 Cake slicing(dp)

題意:n行m列的網格蛋糕上有一些櫻桃,每次可以用刀沿着網格線切成兩塊,問要想使最終每塊蛋糕上恰好有一顆櫻桃,切得最小長度。 直接正向去想怎樣切感覺不好想,但是可以反過來,像區間拼接一樣考慮把當個網格的蛋糕拼接起來,拼接的長度就是要切的長度

原创 hdu 5900 - QSC and Master (2016瀋陽網絡賽)區間dp

題意:輸入n組鍵值對,如果相鄰兩個鍵的最大公約數不爲1,那麼可以刪除這兩組鍵值對,並得到兩個值相加的分數, 問最大得分是多少。注意兩組鍵值對刪除以後會使原本不相鄰的變成相鄰。 比較明顯的區間dp,用dp[i][j]表示區間[i, j]的最

原创 UVALive 6847 - Zeroes

題意:輸入l,r,如果n的階乘結果末尾有i個0,問l<=n<=r時,共用多少個不同的i。 每個0都可以拆分成一個5*2,每兩個數字就有一個是2的倍數,每5個數字纔有一個是5的倍數,所以有多少個0都是由有多少個因子5決定的,每五個數一個,那

原创 UVaLive 6844 - Combination

題意:輸入一個low、high,求。 這個題可以通過暴力小數據發現規律。對於一個數字n,如果這個數字的二進制有i個1,那麼的值爲2的i次方。然後用類似數位dp的方式統計結果。對於(1<<i),小於這個數有j個1的情況有C(i,j)個,對於

原创 uvalive 6692 - Lucky Number 水題

題意:給出n個數字,用x表示一個數字最後一個比它大的數字到他的距離,求x的最大值,n最大1000,000,每個數字是1道100,000. 先統計出每個數字出現最早和最晚的位置,然後對於每一個數字i,用i最後出現的位置減去[1,i - 1]

原创 hdu 5876 - Sparse Graph(2016大連網絡賽) bfs

題意:補圖就是和原圖聯通狀態相反的圖,兩個點相鄰那麼在補圖裏他們不相鄰給出一個圖的補圖,求出s到其他點的最短距離。 用set存放還沒有走到過的點,然後用bfs依次求到每個點的最短距離,到達一個點後就把這個點從set中刪掉,這樣可以使bfs