原创 hdu 4067 Random Maze 最小費用最大流

題意: 給出n個點,m條邊,入口s和出口t,對於每條邊有兩個值a,b,如果保留這條邊需要花費;否則,移除這條邊需要花費b。              題目要求用最小費用構造一個有向圖滿足以下條件:              1.只有一個入

原创 codeforces 235B Let's Play Osu! 概率dp

題意:給定n表示有n個格子,下面每個格子爲O的概率是多少。對於一段連續 x 個O的價值就是 x^2 ;求獲得的價值的期望是多少。 思路:n^2=n×(n-1)+n,設ai爲第i段連續O的長度,∑ai^2 = ∑[ ai+ ai*(ai-1

原创 hdu 5093 Battle ships 二分匹配

題意:在n×m的方格中,‘#’代表iceberg,'*'代表ocean,‘o’代表floating ice。戰艦隻能放在ocean上,在同一行或者同一列不能放兩 個戰艦除非它們中間有iceberg,求最多能放多少戰艦。 思路:二分匹配。每

原创 LA 6530 Football 貪心

題意:給出一系列比賽和結果,可以花錢買任意一場比賽或幾場比賽的進球,問買完後最多能得多少分。勝3分,平1分,負0分。 思路:貪心。策略:1.贏的直接+3  2.其他的按淨勝球升序排序,能買贏就買贏,不然買平。詳見代碼: /********

原创 codeforces 510C Fox And Names 拓撲

題意:n個姓名,按照某種“字典序”。 問如果存在這樣的字典序,輸出字典序'a'到‘z’26個字母的順序。 思路:拓撲排序。對於str[i]和str[i+1]如果在位置k出現不同,那麼x=str[i][k]-'a'+1,y=str[i+1]

原创 LA 6534 Join two kingdoms 樹的直徑+twopoint

題意:給定n,m分別表示兩棵樹的大小             第一棵樹的n-1條邊,第二棵樹的m-1條邊             求用一條邊將兩棵樹連接起來構成的樹的直徑的期望。 思路:先分別求出兩棵樹的直徑,然後預處理求出從每個樹上的點

原创 LA 6531 Go up the Ultras 單調棧+RMQ

題意:已經懶得吐槽了。。有N個山峯,(N<=10^5),每個山峯有高度h,對應着每個山峯有一個d值,每個山峯到所有其他的嚴格比 它高的山峯都會經過一個最低值(山谷),d代表是h減去這些最低值中的最大值的差(如果不存在比它高的山峯那麼d就是

原创 LA 6533 Inverting Huffman 構造+貪心

題意:給定哈夫曼樹的n個葉子節點距離根的距離,求文本至少需要多少個字符可以建出這樣的哈夫曼樹 思路:策略:對於第i層的葉子節點,賦值爲i+1層的節點中權值最大的點這種情況下字符數最少。詳見代碼: /********************

原创 rockethon2015 B題 Permutations 規律+構造

題意:求使所給公式值最大的第m個排列。 思路:假設已知使f(p)最大的n-1的排列,那麼對於使f(p)最大的n的排列,把n放在(n-1)兩邊均可。因爲n放在(n-1)兩邊,增值爲 1+2+...+n,而如果不放在兩邊,(n-1)到n之間的

原创 rockethon2015 C題 Second price auction 概率dp

題意:n個人去競拍一件商品,下面給出n個區間表示每個人出的價是區間中隨機的一個數(概率均等)則第一名需要付的錢是第二名的競拍價格(允許並列第一名)求支付的錢的期望。 思路:參考九野巨的博客:http://blog.csdn.net/qq5

原创 codeforces 167B Wizards and Huge Prize 概率dp

題意:給定n個對手,至少要擊敗其中 l 個人,現在有口袋容量爲 k下面n個數字表示擊敗這個人的概率 下面n個數字(若爲-1表示擊敗這個人可以獲得一個金幣,若>0則表示可以增加口袋容量爲這個數字) 求:至少擊敗其中的l個人,且獲得的總口袋

原创 2014-2015 CT S02E10 C題 Coin Graph 構造+貪心

題意:給定一個數s,構造一個無向圖,使得任意兩點的最短路徑和爲s。 思路:二分找到n,滿足n×(n-1)/2<=s,且n儘可能大。這樣的圖,相當於n個點每兩個點都連一條邊。窩們考慮這樣一種構造方法, 假設現在有n個點,我們按照逆時針方向(

原创 codeforces 510E Fox And Dinner 奇偶建圖+最大流

題意:n個fox,年齡爲a[i]。             現在要將n個fox分配入座,保證與相鄰數的和爲質數。一桌至少三個fox。             輸出要分幾桌,每桌几個fox,按順序輸出每桌坐的fox的id 思路:我們按奇偶將

原创 zoj 3820 Building Fire Stations The 2014 ACM-ICPC Asia Mudanjiang Regional Contest B題 樹的直徑

題意:n個點的樹,給出n-1條邊,每條邊長都是1,兩個點建立防火站,使得其他點到防火站的最遠距離最短。 思路:先求出樹的直徑,直徑上的所有點都存到一個數組裏。如果直徑是奇數,把中間的那條邊刪去;如果是偶數,把中間的點,分 到兩邊的子樹。對

原创 rockethon2015 G2題 Inversions problem 概率dp

題意:給定n,k。k次操作,每次等概率將一個區間翻轉,問最後逆序數對的期望。 思路:設dp[i][j]表示a[i]在a[j]前面的概率。每次枚舉翻轉的區間,更新dp[i][j],複雜度爲O(n^4×k)。詳見代碼: /**********