原创 JZOJ 4895 三部曲(線段樹)

題目 因爲外來的入侵,國王決定在某些城市加派士兵。所有城市初始士兵數量爲0。當城市 被加派了k名士兵時。城市i的所有子城市需要被加派k+1名士兵。這些子城市的所有子城市需要被加派k+2名士兵。以此類推。 當然,加派士兵的同時,國王也需要

原创 JZOJ 4898 人生的價值(線段樹、掃描線)

題目大意 YYHS的校園可以抽象成一個無限二維平面,校園裏分佈着N個教室(編號爲1..N),第i個教室的座標爲(x[i], y[i]),裏面有w[i]個學生。新食堂的飯菜十分美味,然而同學們都比較懶。當且僅當新食堂的位置和第i個教室的位置

原创 JZOJ 4920 降雷皇(最長上升子序列、線段樹)

題目大意 給出一個序列a,求最長上升子序列及其方案數。 n<=100000,a[i]<=100000 時間限制 1s 空間限制 256M 解題思路 當做到第i位時,線段樹上的第x位表示1~i-1中,結尾爲x的子序列能取到的最大答案。

原创 JZOJ 4770 閉門造車(平面最近點對)

題目 自從htn體驗了一把飆車的快感,他就下定決心要閉門造車!但是他兩手空空怎麼造得出車來呢?無奈的他只好來到了汽車零部件商店。 一走進商店,玲琅滿目的各式零件看得htn眼花繚亂。但是他很快便反應過來:我只要買一套好的零件就行。首先它們

原创 JZOJ 4685 禮物

題目 夏川的生日就要到了。作爲夏川形式上的男朋友,季堂打算給夏川買一些生日禮物。 商店裏一共有種禮物。夏川每得到一種禮物,就會獲得相應喜悅值Wi(每種禮物的喜悅值不能重複獲得)。 每次,店員會按照一定的概率Pi(或者不拿出禮物),將第

原创 JZOJ 4866 禪與園林藝術

題目 上了大學之後,小W和小Z一起報了一門水課,在做作業時遇到了問題。 有一個長度爲 n 的數列{ai},爲一列樹木的美觀值。 現在有m 次詢問,每次給出三個數l,r和P, 詢問對於所有的l <= l’ <= r’ <= r (

原创 JZOJ 4886 字符串

題目 某日mhy12345在教同學們寫helloworld,要求同學們用程序輸出一個給定長度的字符串,然而發現有些人輸出了一些“危險”的東西,所以mhy12345想知道對於任意長度n的小寫字母字符串,不包含危險串的字符串個數。 0<=|s

原创 JZOJ 4891 擺書(貪心)

題目大意 給出一個長度爲n的排列,每次操作可以將其中一個數放到最前面,問至少要多少次操作將該序列改成單調遞增序列。 n<=100000 時間限制 1s 空間限制 64M 解題思路 如果我們把一個數k放到最前面,那麼比k小的數在接下來就

原创 JZOJ 4762 千帆渡(動態規劃)

題目大意 給出長度各爲n和m的序列a和b,求它們的最長公共上升子序列並輸出任一方案。 n,m<=5000 時間限制 1s 空間限制 256M 解題思路 f[i][j]表示a中1~i中的某一位和b中第j位結尾得出的序列長度。 1、a[

原创 JZOJ 4771 爬山 (Tarjan縮環、人工棧)

題目 國家一級爬山運動員h10今天獲得了一張有着密密麻麻標記的地圖,在好奇心的驅使下,他又踏上了去爬山的路。 對於爬山,h10有一個原則,那就是不走回頭路,於是他把地圖上的所有邊都標記成了有向邊。他決定從點S出發,每到達一個新的節點他就

原创 JZOJ 4876 基因突變

題目大意 邪惡的707剛剛從白堊紀穿越回來,心中產生了一個念頭:我要統治人類! 但是統治人類是很龐大且複雜的一個工程,707嘗試了洗腦,催眠,以及武裝鎮壓都沒能成功地統治人類,於是她決定從科學上對人類的基因進行研究從而達到他的目

原创 JZOJ 4669 弄提綱

題目大意 給出一個字符串S和m個詢問。 每個詢問有兩個數l,r,要求以結尾爲第l位和第r位的子串中,有多少個是原串的前綴,以及當中最長的子串的長度。 |S|<=30000,m<=100000 時間限制 1s 空間限制 256M 解題

原创 JZOJ 4869 平均數

題目大意 給出長度爲n的序列,求所有子區間的和中,第k小的值是多少。 n<=100000 時間限制 1s 空間限制 256M 解題思路 二分答案,每次把序列全部減去mid,問題就變成了求有多少個子區間的和是負數,即sum[i-1]>s

原创 JZOJ 4889 最長公共迴文子序列(搜索)

題目大意 求兩個小寫字母串(長度分別爲n和m)的最長公共迴文子序列。 1≤n≤100000,1≤m≤20 時間限制 1s 空間限制 233000K 解題思路 因爲m特別小,所以我們可以暴力枚舉第二個串上的每一個迴文子序列,在判斷是否在

原创 總結 Tarjan的一些應用

參考:http://www.cnblogs.com/luckycode/p/5255656.html 說說兩個常用的: (約定u爲父節點、v爲子節點) 1、割點:若low[v]>=dfn[u],則u爲割點; 2、橋:若low[v]>