原创 scu圖論專題題解

傳送門:點擊打開鏈接 感覺做着還是好費勁啊,,,有些東西總是想不到T^T A題:給出邊,分別判斷是有向圖或者無向圖的時候,是否爲歐拉回路 首先必須弱連通圖要連通。對於無向圖,度全爲偶數,或者度爲奇數的點的個數爲2 對於有向圖,入度全部等

原创 二分+2SAT zoj3422 Go Deeper

傳送門:點擊打開鏈接 題意: go(int dep, int n, int m)    begin       output the value of dep.      if dep < m and x[a[dep]] + x[b[de

原创 2SAT poj3683 Priest John's Busiest Day

傳送門:點擊打開鏈接 題意:有n個婚禮,有開始時間和結束時間,現在只有1個神父,必須要出現在每個婚禮的開始和結尾並持續一定的時間舉行儀式。問神父是否可以做到對n個婚禮都矩形儀式。輸出任意答案。 思路:這算是2SAT最經典的題了 首先說下2

原创 取尺法 Codeforces675C Money Transfers

傳送門:點擊打開鏈接 題意:有n家銀行圍成一個圈,有個人在有些銀行裏欠了錢,在一些銀行裏有存錢,欠的錢總數等於存的錢總數。 現在可以有操作,如果兩個銀行相鄰,那麼就能在一個銀行轉任意多的錢到另一個銀行。問最少的操作次數,使得在所有銀行的存

原创 BFS+枚舉 Codeforces666B World Tour

傳送門:點擊打開鏈接 題意:有向邊n個點,m條邊(n < 3000, m < 4000),現在選出不相同的4個點,要求a->b->c->d的路徑最大,從u->v走的路徑必須是最短路。 題目保證存在4個點可以走到。 思路:先BFS預處理出所

原创 lcp+dp hzau17 LCS

傳送門:點擊打開鏈接 題意:求s1和s2的最長公共子序列,要求每一連續部分的長度都要>=k(|s1,s2|<=2000) 思路:我們可能會考慮3維dp,但是很明顯是會超時的,所以我們肯定是要用貪心或者數據結構降一維 我們來考慮貪心。假如我

原创 線段樹 hdu5700 區間交

傳送門:點擊打開鏈接 題意:有n個區間,求k個區間,使得這k個區間相交的區間內數字之和最大。數列的數字均>=0 思路:通常這種題目我們都會先按照區間的右區間位置排序。之後的步驟如果想到了,就會變得很水 我們最後交出來的區間,右端點是確定的

原创 二分+2SAT njust1928 puzzle

傳送門:點擊打開鏈接 題意:小明在玩一個闖關遊戲,共n關,必須按順序通過,每一關會遇到兩個數字(可能一樣),他要選擇其中一個,如果要選的這個數字是他之前選過的就直接過了這關。 但是他如果在某一關選了數字X,那就不能在經過另一關時選擇數字Y

原创 STL亂搞 Codeforces675D Tree Construction

傳送門:點擊打開鏈接 題意:按BST插入節點。最後輸出每個節點的父節點的值是多少 思路:這場的cf腦洞都很大。。 首先,假如我們要插入的節點的值爲x,我們發現父節點的值一定是<=x的最大值的右節點,或者是>x的最小值的左節點 然後我們還能

原创 矩陣快速冪+map 雷神之路 scu dp練習A題

傳送門:點擊打開鏈接 題意:剛開始在位置0,只允許向右走,可以走1步,2步或3步,路上有地雷,不能踩(m <= 500)。問到達位置n的方法數(n <= 1e18),答案取模1e9+7 思路:很明顯要用矩陣快速冪來加速計算dp。 我們假如

原创 DFS序+主席樹 51Nod1681 公共祖先

傳送門:點擊打開鏈接 題意:有一個龐大的家族,共n人。已知這n個人的祖輩關係正好形成樹形結構(即父親向兒子連邊)。 在另一個未知的平行宇宙,這n人的祖輩關係仍然是樹形結構,但他們相互之間的關係卻完全不同了,原來的祖先可能變成了後代,後代變

原创 2SAT hdu3062 Party

傳送門:點擊打開鏈接 題意:n對夫妻,一對夫妻必須去1人,有m對人互相討厭,不能同時去,問是否有這樣的情況。 思路:2SAT... #include <map> #include <set> #include <cmath> #inclu

原创 線段樹降空間複雜度,從O(4n)降到O(2n)

int ID(int l, int r) { return l + r | l != r; }  通常情況下,我們都是用rt來保存內容,然後左子樹就是rt<<1,右子樹就是rt<<1|1 我們仔細想一想,線段樹的節點個數其實只有n

原创 二分+樹型 dp hdu5682 zxa and leaf

傳送門:點擊打開鏈接 題意:一棵樹n個點,其中有一些點已經有權值,現在給剩下的點安排權值,使得樹中相鄰兩點的之差絕對值的最大值最小。 思路:如果我們首先就想到了二分,那後面很好想了。。 直接二分答案,之後check中,我們隨便取1個點爲根

原创 分治法 區間的價值 hdu5696

傳送門:點擊打開鏈接 題意:給你一個序列,定義一個區間的價值是,這個區間裏的最大值乘以最小值。求出所有區間長度對應的最大價值。注意數據爲全隨機 思路:重點是數據全部隨機。這道題有了這個條件後,才變成了很多種方法都能做的題,這裏我講下分治法