原创 HDU 4824 (2014百度之星資格賽1002)

跟HDU2224 類似 http://blog.csdn.net/a634771197/article/details/26486159 因爲從一個軌道跳到另一個的代價是400,而磁頭最多旋轉最多需要360,所以不存在先跳到下下個,再跳

原创 HDU 3605 Escape 最大流,狀壓

最大流,n比較大,但是m只有10,所以對應的人的狀態最多有2^m種,因此可以對人進行歸類,那樣n的數據量就只有1024了,求最大流 g++交會超時 ,要用c++ #include <iostream> #include<cstdio

原创 HDU 3488 Tour 最小費用最大流||最大匹配

題意:選一條路線,使得經過n條路,並且有環,回到起點 分析:n條路分別從n個不同的點出發,到達不同的點,用最大匹配可解 把每個點拆成2個,一個進,一個出,連接源點跟所有進入點,容量爲1,費用爲0,連接所以出點和匯點,容量爲1,費用爲0

原创 HDU2222 AC自動機入門

題意: 給出一些關鍵詞,求在下面的字符串中出現的有多少個 分析:AC自動機模板題 注意:1.關鍵詞可能在字符串中出現多次,只算一次     2.關鍵詞可能相同,都要算     3.用數組寫會卡內存,開250000差不多能卡過 #inc

原创 HDU 2795 線段樹

參考http://www.notonlysuccess.com/index.php/segment-tree-complete/ 因爲h的範圍爲(1,10^9),而n的範圍是(1,200000) 而用到的h不會超過n個,所以h可以取(n

原创 HDU 2426 KM

KM算法,負權直接捨去,判斷是否每個學生都有安排了 #include <iostream> #include<cstdio> #include<string> #include<algorithm> #include<cstring

原创 HDU 3491 Thieves 拆點 最小割

題意:警察抓小偷,已知每個城市至少需要的警察人數,警察要在s到h的路上抓到全部小偷,求最少需要的警察人數 分析:求最小割,等於最大流,把每個城市拆成2個點,一個點入,一個點出,2點之間的容量爲這個城市的警察人數,相連的城市加容量爲INF的

原创 HDU 3308

線段樹  區間合併 題意: U A B  把A點的值改爲B Q A B 求區間[A,B]的最長連續遞增子序列 分析: pushup 的時候 ,如果左區間的右值小於右區間的左值,則左右區間可以合併,否則,LCS爲左右區間中最長的。

原创 HDU 4366

線段樹     題意: 每個員工有一個上級,每個上級有很多下級,求fire掉一個人之後可以用哪個人頂上 /* 線段樹 題意: 每個員工有一個上級,每個上級有很多下級,求fire掉一個人之後可以用哪個人頂上 替換規則:該員工的能力

原创 HDU 3435 A new Graph Game

題意:刪除一些邊得到一個或多個哈密爾頓圖,使得所有邊權之和最小 分析:雙向邊賦值,取反求最大匹配並判斷是否是完全匹配 #include <iostream> #include<cstdio> #include<string> #inc

原创 HDU 2594

題意:給2個字符串s1,s2,求s1的前綴和s2的後綴相同的最長長度 分析:把s2接到s1後面,求fail數組,因爲fal[i]=j表示的是s[0..j]=s[i-j,i],所以fail[strlen[s1]+srelen(s2)-1]就

原创 HDU 2870

HDU 1505加強版 分別枚舉a,b,c3種情況,求最大值‘ #include <iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<s

原创 HDU 1506

題意:給出底爲1,高度不同的一些矩形,求構成的最大的矩形面積 分析:對每個小矩形的高度往兩邊推,找到大於等於其高度的最左和最右2個矩形的下標,最右-最左+1即爲該高度的矩形的寬,乘高度求面積 #include <iostream> #i

原创 HDU 1358

#include <iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<string> #define N 1000005 using n

原创 POJ 2777

線段樹+延遲標記 題意:長爲Lcm的一塊板,可以看成長度爲1cm的m段,2種操作 (C,a,b,c)    把區間[a,b]塗成顏色c  ; (P,a,b)    求區間[a,b]顏色數目  1<=c<=T<=30; 所以可以用1個整數