原创 [單調隊列DP] HDU3401 Trade

Trade 題意: 炒股,給出第1~t天每天的買入價格Ap[i]和賣出價格Bp[i],每天最多能買入的數量As[i]和最多能賣出的數量Bs[i]。 還有幾個限制,任意時刻最多持有Pmax數量的股票,兩次交易(買入或賣出)間隔

原创 [AC自動機+DP] bzoj 1030: [JSOI2007]文本生成器

1030: [JSOI2007]文本生成器 題解: 在只有大寫A-Z的情況下,給出n個單詞,每個單詞長度<=100,再給出一個長度m<=100,求所有長度爲m的串中至少包含1個給出單詞的串的數量。 題解: 建立ac自動機跑

原创 [CDQ分治] codeforces 669E. Little Artem and Time Machine

題意: 要你維護一個帶時間戳的multiset,有三種操作。 - 形如:1 a b ,在第a秒插入1個b。 - 形如:2 a b ,在第a秒刪除1個b。 - 形如:3 a b ,查詢當前在a秒時有多少個b。 需要注

原创 [思維] codeforces 665D. Simple Subset

題意: 給一個n個正整數序列a ,要找一個最大的子序列,使子序列裏任意兩個元素ai和aj(1<=i<j<=n)的和ai+aj 都是素數,要輸出這個子序列的大小和子序列的元素。 1<=n<=1000 1<=a[i]<=106

原创 HUTACM2016 MST練習·解題報告

專題鏈接 A - 還是暢通工程 題解: n個村,m條路,要用最少的錢把所有村連接起來,MST的模板題,提供兩種算法模板。 //使用Kruskal算法 #include<stdio.h> #include<algorithm>

原创 [最短路應用] ZOJ 3946 Highway Project

題意: n個點(0~n-1),m條邊,每條邊有兩個權值,一個是時間,一個是花費,其中0是首都,要讓0點到其他所有點的總時間最短,同時要讓花費最小。 二重限制的最短路,稍微改一下即可。 關於正確性的一些思考: 對prim算法有一點

原创 [斜率優化DP] codeforces 673E. Levels and Regions

題意: 要把1~n 分成k 組,每組內的數必須連續,組與組不相交且每個數必須屬於一個組,並且任意i 有一個參數ti 。 如果[l,r] 爲一組,那麼從l 走到l+1 的概率是tltl ,從l+1 走到l+2 的概率是tltl+

原创 [dfs序+線段樹] codeforces 343D. Water Tree

題意: 給出一棵樹,節點權值爲true或者false,初始每個節點權值爲false,維護兩種操作。 形如1 x:把x節點及其子樹的值賦爲true。 形如2 x:把x節點及其到根節點的祖先賦值爲false。 形如3 x:問x節點

原创 [尺取法] CF660 C.Hard Process

C. Hard Process 題意: 給一個01串,最多可以把k個0變成1,求最長連續1的長度,並且要輸出最後的串。 題解: two pointers尺取,O(N) 。 #include<bits/stdc++.h> u

原创 [概率DP] Topcoder SRM687div2 1000 Queueing

題意: 兩列隊伍,左邊有len1 個人,右邊有len2 個人,問事件左邊沒人但右邊有人的概率。 兩邊收銀員各有一個經驗值參數p ,F(p,k)=(1/p)∗(1−1/p)k−1 表示經驗值爲p 的收銀員恰好花費k 秒完成一次收

原创 [斜率優化] codefores 660F. Bear and Bowling 4

F. Bear and Bowling 4 題意: 給一個序列val ,任選連續的一段[l,r] ,其價值爲∑rj=lval[j]∗(j−l+1) ,求最大價值 。 簡單的說就是可以去掉這個序列的某前綴和某後綴,然後對新得到

原创 [數學] codeforces 676E. The Last Fight Between Human and AI

題意: 一開始有一個多項式P(x)=an∗xn+an−1∗xn−1+⋯+a1∗x+a0 係數未知,人和電腦輪流最優確定一個係數,問最後能不能使P(x)=B(x)∗Q(x) 成立,成立人就贏了,否則電腦贏,電腦先走。 其中Q(

原创 [DP] codeforces 650D. Zip-line

題意: 給一個長度爲n的序列ai ,有m個詢問,一次詢問給出pos,val ,問假如把apos 變成val ,序列的最長上升子序列的長度(設爲lis )是多少,注意詢問不會改變原序列。 題解: 把a_{pos}apos 變成val

原创 [線段樹] Chef and Array

CHEFLKJ: Chef and Array 題目描述 大廚喜歡序列和有關序列的一切。他稱一個序列 V 是支配的,當且僅當存在一個數字 x(即“支配者”)其在序列中的出現次數嚴格超過序列長度的一半(即 ⌊|V |/2⌋)。

原创 [搜索] LightOj 1165 - Digit Dancing

Digit Dancing 題意: 給你8個數,他們的絕對值組成一個1~8的一個排列,每次操作允許找到同時滿足下列情況的兩個數ai,aj ,把ai放到aj的任一側 ,或者把aj放到ai的任一側 : ai,aj 兩個數一正一負