題目串連開始學習網路流了,剛開就做這道題,確實不知道這麼建圖。發現網路流建圖很重要,圖建好了,問題就好解決了,這題確實建圖有難度。點擊開啟連結看下這張草圖:按著實際意思:應該為左邊的圖,(是個多源節點和多個匯點的網路),可以轉化成單源節點和單源匯點的問題。方法就是:添加一個超級源節點和超級匯點。s 和 節點。EK演算法:(391ms)#include<cstdio>#include<cstring>#include<queue>#define INF
http://codeforces.com/problemset/problem/127/D題意:求一個字串S的最長子串,使得它同時是S的首碼,尾碼和中綴。思路:這道題有多種方法,這裡介紹SAM的方法,我們先構造S的SAM,對於SAM的每一個狀態,設num為其所代表字串在S中出現的個數,r為其代表子串在S中出現的最右位置(這兩個量由SAM的性質可以拓撲排序後自底向上求出)。然後用S在SAM上做匹配。假設我們已經匹配了長度n,由於當前匹配的串一定是S的首碼,我們只要判定它是否為中綴和尾碼,什麼樣的
http://poj.org/problem?id=2104題意:求一個數列任意區間的第k小值。思路:劃分樹模板題,劃分樹的資料這裡有:http://blog.csdn.net/dyx404514/article/details/8731696#include <iostream>#include <string.h>#include <stdio.h>#include <algorithm>#define maxn 100010#define
題目串連題目廢話真多!題目的意思是:
轉載請註明出處:優YoU http://blog.csdn.net/lyy289065406/article/details/6732762 大致題意:給定一個N*M的地圖,地圖上有若干個man和house,且man與house的數量一致。man每移動一格需花費$1(即單位費用=單位距離),一間house只能入住一個man。現在要求所有的man都入住house,求最小費用。 解題思路:費用流問題。 構圖:
http://acm.hdu.edu.cn/showproblem.php?pid=4417題意:求一組數列中任意區間內不大於h的數的個數。思路:這題可以用劃分樹來做,我們只要找到區間內比h大的數中最小的那個,若它是該區間第k小的數,則答案即為k-1,我們可以通過二分來尋找區間的第k小數,找到比h大的最小的數後即可得到答案,注意h可能比區間內的所有書都大,這個要特殊處理一下。以下是代碼:#include <iostream>#include
轉載請註明出處:優YoU http://blog.csdn.net/lyy289065406/article/details/6698787 大致題意:給出2個整數n(n<10^100)和k(k<10000),求滿足以下條件的整數m 1、m與n位元相同 2、m能被k整除 3、滿足以上兩點時,m和n在相同位置的地方,數字不同的個數最少 4、滿足以上三點時,m值最小 解題思路:這題解法很多,有人用DP,有人用記憶化搜尋,有人搜尋+強剪枝。POJ分類把這題歸入“記憶化搜尋”,但是我不
轉載請註明出處:優YoU http://blog.csdn.net/lyy289065406/article/details/6742534 大致題意:
轉載請註明出處:優YoU http://blog.csdn.net/lyy289065406/article/details/6727035 大致題意:牆上有一面黑板,現劃分為多個矩形,每個矩形都要塗上一種預設顏色C。由於塗色時,顏料會向下流,為了避免處於下方的矩形的顏色與上方流下來的顏料發生混合,要求在對矩形i著色時,處於矩形i上方直接相鄰位置的全部矩形都必須已填塗顏色。在填塗顏色a時,若預設顏色為a的矩形均已著色,或暫時不符合著色要求,則更換新刷子,填塗顏色b。 注意:1、
轉載請註明出處:優YoU http://blog.csdn.net/lyy289065406/article/details/6746954 大致題意: 首先說明,下面所述的“大致題意”並不是題目的原意,但是按照題目原意去做是不可能AC的,因為測試資料庫與題目原意出入非常大。另外順便建議,剛玩POJ的同學沒事不要做這題,因為如果沒有測試資料庫你會瘋掉的,有測試資料庫也很容易瘋掉的。
轉載請註明出處:優YoU http://blog.csdn.net/lyy289065406/article/details/6762370 大致題意:某個企業想把一個熱帶天堂島變成旅遊勝地,島上有N個旅遊景點,任意2個旅遊景點之間有路徑連通(注意不一定是直接連通)。而為了給遊客提供更方便的服務,該企業要求道路部門在某些道路增加一些設施。道路部門每次只會選擇一條道路施工,在該條道路施工完畢前,其他道路依然可以通行。然而有道路部門正在施工的道路,在施工完畢前是禁止遊客通行的。這就導致了在施
最近做的狀態壓縮DP小節:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4257zoj 4257一堆氣體相互碰撞產生能量,求最後能產生的最大能量,應該是很基礎的狀態壓縮DP吧,設dp[flag]表示狀態flag時能產生的最大能量,(flag中1表示該氣體還存在,0表示該氣體已經消失)邊界條件是flag所有位都為一時,這時產生的能量為0,然後就枚舉最後剩下的氣體,求最大值即可。#include <iostream>
昨天看到一道好題,現與大家分享一下。 http://codeforces.com/contest/165/problem/E題目大意:給一個序列a1~an(n<=1000000),問對於每一個ai來說,是否存在一個數x使得 ai&x==0且x是序列a 中的元素。ai的範圍是(1<=ai<=4000000)。 思路:對於一個數,比如說53,其二進位表示為
轉載請註明出處:優YoU http://blog.csdn.net/lyy289065406/article/details/6762432 大致題意: 為了保護放牧環境,避免牲畜過度啃咬同一個地方的草皮,牧場主決定利用不斷遷移牲畜進行餵養的方法去保護牧草。然而牲畜在遷移過程中也會啃食路上的牧草,所以如果每次遷移都用同一條道路,那麼該條道路同樣會被啃咬過度而遭受破壞。
題目串連HDU 1565和1569同屬一個問題:最大點權獨立集。這是一個二分圖最大點權獨立集,就是找出圖中一些點,使得這些點之間沒有變相連,這些點的權值之和最大。獨立集與覆蓋集是互補的,求最大點獨立集可以轉化為最小點權覆蓋集(最小點權支配集),最小點權覆蓋集問題可以轉化為最小割問題。 結論:
把最近做的一些狀態壓縮DP整理一下。DP苦手,從簡單的開始。http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1297zoj 2297
轉載請註明出處:優YoU http://blog.csdn.net/lyy289065406/article/details/6764104 大致題意:有N只奶牛,其中奶牛A認為奶牛B備受注目,而奶牛B也可能認為奶牛C備受注目。奶牛們的這種“認為”是單向可傳遞的,就是說若奶牛A認為奶牛B備受注目,但奶牛B不一定會認為奶牛A備受注目。而當A認為B備受注目,且B認為C備受注目時,A一定也認為C備受注目。
題目大意:要求實現一個棧,除了普通的pop()函數和push()函數外,還有一個max()函數,功能是返回棧中最大值,要求時間複雜度和空間複雜度盡量低。
在技術筆試面試上,我們常常會遇到這樣一類題型,如給你一個入棧序列,然後再讓你判斷幾個序列是否有可能為它的出棧序列,如:入棧序列為 1 2 3 4 5,則 1 2 3 4 5可能為它的出棧序列,而 5 4 1 2 3不可能為它的出棧序列。對於n比較小的情況,我們往往可以通過手動類比的方式來判斷,對於n比較大的時候,這種方法就顯得效率不佳了。下面介紹一種通用的方法判定合法出棧序列,時間複雜度為O(n)。為了敘述方便,我們不妨設入棧序列為 1 2
2012杭州網路賽的一道題,尾碼數組尾碼自動機都行吧。題目大意:給一個字串S和一系列字串T1~Tn,問在S中有多少個不同子串滿足它不是T1~Tn中任意一個字串的子串。 思路:我們先構造S的尾碼自動機,然後將每一個Ti在S的SAM上做匹配,類似於LCS,在S中的每一個狀態記錄一個變數deep,表示T1~Tn,在該狀態能匹配的最大長度是多少,將每一個Ti匹配完之後,我們將S的SAM做拓撲排序,自底向上更新每個狀態的deep,同時計算在該狀態上有多少個子串滿足題目要求。具體步驟如下:1:對於目前狀態,