原创 HDU 4768 Flyer 二分

題意:略。 思路:直接二分,因爲假設現在在點mid .那麼求出[l , mid]的和,如果是奇數,那麼那個點肯定在前面的區間,也就是mid = r - 1 ,如果是偶數,則證明在後面的區間,mid = l + 1 。然後更新答案即可。 這

原创 HDU 4756 次小生成樹

題意:給你n(n = 1000)個二維點,第一個點是power plant,還有n - 1個點是dormitories。然後現在知道有一條寢室到寢室的邊是不能連的,但是我們不知道是哪條邊,問這種情況下,最小生成樹的最大值。 思路:有一種很

原创 POJ 1961 KMP_next數組

題意:給你一個串,然後叫你輸出,該串從1 -> i (i = 2 , 3 , 4 ……, l)這個前綴串,可以由一個字串循環多少次產生,即是一個週期串,無法形成則不輸出。具體可以看樣例,很好理解。 思路:這道題考察的是KMP,next數組

原创 CF 189DIV2 E DP + 斜率優化

題意:給出兩個數組,分別表示樹的高度和樹的補充能量的值。有兩個人在鋸樹,這兩個人的鋸子很神奇,一次只能鋸一顆樹的高度1,也就是一次一顆樹只減1。 然後每次鋸子鋸完一次就要補充一下能量,這個補充的能量每次就是找到被鋸完的ID最大的樹,然後補

原创 UVALIVE 5792 Trie+統計

題意:給你兩種串,一種可以當前綴,一種可以當後綴,問兩種串合起來,一共有多少種組合。並且沒有重合。 思路:我們先將兩種串插入字典樹,對於後綴串,我們反向插入,然後處理出每個字符對應的後綴的個數。 我們來看一個組合的串,c = a + b

原创 HDU 4763 拓展KMP

題意:給你一個串,問是否可以找到這樣的三個串,是這個串的前綴,中間串, 後綴, 這個三個串相同,找出最長的這樣的三個串。輸出長度。 吐槽:昨天隨手KMP就水過了,發現隨便一組樣例都過不了,數據真水。 思路:今天用拓展KMP做了一發,首先我

原创 UVAlive 6131 dp+斜率優化

這道題和06年論文《從一類單調性問題看算法的優化》第一道例題很相似。 題意:給出n個礦的重量和位置,這些礦石只能從上往下運送,現在要在這些地方建造m個heap,要使得,sigma距離*重量最小。 思路:O(n ^ 3)的DP解法是很容易想

原创 HDU 4081 MST

這道題在LRJ的書上看到,今天回過頭來繼續看這題,發現很多東西都已經明白了。 題意:有N個城市,每個城市有一個座標和人口。 現在要建一些邊使得他們都聯通,花費就是這些邊的長度,然後有一條邊可以免費。問免費一條邊之後,使得免費的該條邊的兩個

原创 130902 周賽

UVALIVE地址:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=572 待續。 A。Arranging Hea

原创 uvalive 5742 TSP

題意:給你N個小島,每個小島有一個初始座標(x ,y) ,還有一個速度(vx ,vy),代表他一小時向x軸方向移動vx,向y軸方向移動vy。 然後給你一個直升機的座標(hx , hy) ,和直升機的速度hv。 問:最少需要多少時間,可以使

原创 HDU 3584 三維樹狀數組

三維樹狀數組模版。優化不動了。 #include <set> #include <map> #include <stack> #include <cmath> #include <queue> #include <cstdio> #inc

原创 HDU 3480 DP+斜率優化

題意:給你n個數字,然後叫你從這些數字中選出m堆,使得每一堆的總和最小,一堆的總和就是這一堆中最大值減去最小值的平方,最後要使得所有堆加起來的總和最小。 思路:對這些數字排序之後,很容易想到DP解法,用dp[i][j]表示數字i現在在第j

原创 UVALIVE 5789 線段樹

這道題其實不用線段樹,因爲他的數據裏區間不會重合,所以直接爆搞就可以了。 但是我一開始沒注意,然後就直接上線段樹了,就當是練手了。 期間SB了很多次,學習了。 題意:給出N個人和M次詢問。 N個人從1 - N 排成一列。 每次詢問一個區

原创 HDU 4126 MST

這道題和HDU4756是完全一樣的。 http://blog.csdn.net/just_water/article/details/11950623 題意:給你一個無向圖,有N個點M條邊,然後Q個詢問,每次詢問x , y , z ,意思

原创 POJ 2686 spfa+dp

題意:有m個城市,現在一個人要從a 走到 b ,城市之間有p條無向邊,每條邊都有權值,現在這個人有n張票,每張票有一個馬的數量,這個人每走一條邊就要使用一張票,每張票只能使用一次,假設從x -> y ,距離是z , 他使用一張票,馬的數量