原创 51nod 1677——treecnt

題意:給你n個結點,n-1條邊,要從這n個結點裏面選出k個結點,再選出最少邊使這些結點之間相互連通,問對於所有選擇k個結點的最小選擇邊數的總和是多少。 題解:因爲每次選k個點其實是固定了的,所以撇開要確定的邊,每次要選的k個點就是一個組合

原创 拓撲排序-HDU1285( 確定比賽名次 )

點擊打開題目鏈接又是一道拓撲排序模板題,和POJ2637幾乎一模一樣的。題意就不用說了吧,就是中文題目要求什麼也很清楚。這裏要說一下,這道題除了要求輸出拓撲排序後的順序,還額外要求在符合題目條件的情況下,輸出編號小的隊伍在前面,這裏我們可

原创 組合數(power oj-2419)

題意:給你 a,n,m, 求a^( C(n,m) ) )% mod,mod = 999911659。 題解:組合數取模再加上題目的數據範圍是肯定要用lucas定理的,但是根據 歐拉定理可知ans = a^( C(n, m) %(mod-1

原创 hdu 1298——T9(字典樹)

題意:模擬手機九宮格輸入法,輸入w個字符串並給出每個字符串出現的次數,然後輸入p組查詢,每組的查詢由一串數字組成,每輸入一個數字輸出到當前爲止最有可能的字符串(如果不存在就輸出MANUALLY),出現次數越多的字符串可能性越大。 題解:看

原创 拓撲排序模板題-POJ 2367(Genealogical tree )

點擊打開題目鏈接本題是拓撲排序的模板題,如果還不知道什麼是拓撲排序的同學,可以參看這位大神博客裏面的手動模擬拓撲排序的過程,相信看完以後你就會懂了什麼是拓撲排序了。(鏈接:https://blog.csdn.net/qq_35644234

原创 Codeforces Round #469 (Div. 2)——C. Zebras

點擊打開原題鏈接 題意:給你一個只由0和1組成的字符串,求能分成多少個由0開頭0結尾並且中間01交替排列的子序列。這裏題意需要注意的是,如果原字符串中由1開頭或由1結尾是不合法的,如果有兩個1挨着也是不合法的。 題解:由於要求輸出的是每個

原创 Codeforces Round #495 (Div. 2)-C. Sonya and Robots

題意:題目描述其實蠻複雜,反正就是找給出的序列裏有多少組不同的<ai,aj>(i<j),a[i]和a[j]可以相同。題解:超級簡單,只需要從後往前統計到每個位置爲止有多少種不同的數,最後再從前往後遍歷一次,對於每個不同的ai只需要找後面有

原创 Codeforces Round #469 (Div. 2) ——D. A Leapfrog in the Array

題意:1~n的數按順序間隔排列,(1  2  3  4  ...  n) 中間的空格也要佔一位,現在有一種操作,每次把序列最後面那個數移到離它最近的空格里面,直到前n個位置都被填滿,沒有空格了。給出q次查詢,每次輸入一個數 Xi,要求輸出

原创 HDU4638 Group (樹狀數組+離線處理)

在網上看了好多大神的博客,反正自己是絕對想不到怎麼做的,好不容易感覺自己迷迷糊糊懂了個大概,就先記下來,免得以後忘記。有的地方思路很勉強甚至是錯的,歡迎大家指教糾正。題意:給你一個1~n的排列序列,m次查詢,每次給出一個區間,求這個區間內

原创 HDU1520——Anniversary party(樹形DP)

題意:有n個人,他們之間有上司和下屬關係,每個人有自己的價值,現在要選一部分人使其滿足上司和下屬不同時被選到的情況下價值總和最大。更直接的講就是,在一棵樹中選價值總和儘量多的節點但是不能同時選到一個節點和它的直接父節點。 題解:因爲這裏要

原创 POJ - 3080——Blue Jeans (KMP)

點擊打開題目鏈接 題意:給m個長度不超過60的字符串,輸出這些字符串共同的最長公共子串。(多組輸入)當然,題目給的數據m<=10&&字符串長度不超過60,所以可以直接暴力做。這裏只講用KMP來寫的解法。 題解:枚舉第一個串的所有子串,然後

原创 Codeforces Round #340 (Div. 2)-E- XOR and Favorite Number(莫隊算法)

點擊查看題目 題意:給你一串數字,若干個查詢,每次查詢的值是給出的查詢區間裏的子區間的異或值爲k的個數。 題目要求什麼很好理解,直接說解法,由於本題只有詢問沒有修改,所以比較適合離線處理,而莫隊算法是離線處理一類區間不修改查詢類問題的算法

原创 題解一

A. Buns(多重揹包/01揹包)點擊打開題目鏈接題意:有n克麪糰,m種可以做不同餡餅的餡料,第i種餡料有ai克,可以用bi克餡料和ci克麪糰做一個價值爲di的餡餅,也可以不用餡料只用c0克麪糰做價值爲d0的餅。問用現有的麪糰可以做的麪

原创 ACM-ICPC 2017 Asia Xi'an——LOL(DP)

題意: 模仿遊戲LOL,己方選擇5個英雄(能選擇的前提是已經買了這個英雄) 自己這一方選的英雄肯定不能一樣,敵方也選擇5個英雄但是可以隨便選喜歡的 然後己方和敵方可以分別各禁止5個英雄,總的英雄種類數是100個. 題解: 題意具體化到給出

原创 Cheapest Palindrome(POJ-3280)

題意:給一個長度爲m的字符串s,其中含有n種字母,給出添加和刪除某種字母所需要的代價,你可以通過添加或刪除某些字母來使這個字符串變成迴文串,求使當前這個字符串變成迴文串需要的最少代價是多少。題解:典型的區間DP,可以通過小區間一點一點的推