原创 BZOJ1067 [SCOI2007]降雨量 RMQ+亂搞

這恐怕是見過最噁心的題目了... 一開始題目意思都理解錯了,然而樣例能過... 總之題解就看hzwer的吧...  http://hzwer.com/1655.html 區間最值我用的RMQ,當然線段樹也ojbk。。。 代碼可讀性還是有的

原创 HDU5536 Chip Factory 01Trie處理xor

2015ICPC長春站J題 給出一個長度爲NNN的數組sss,求max⁡(si+sj)⨁sk\max (s_i+s_j) \bigoplus s_kmax(si​+sj​)⨁sk​,其中i,j,ki,j,ki,j,k互不相同,有多

原创 BZOJ4029 4029: [HEOI2015]定價 貪心

定義一個數的“荒謬度”爲:這個數去除末尾0後的十進制長度p*2,如果此時末尾爲5則爲p*2-1. 求在區間[L,R]中“荒謬度”最小的數. 貪心。每

原创 BZOJ1106 [POI2007]立方體大作戰tet 樹狀數組

給定玩家一個有2n個元素的棧,元素一個疊一個地放置。這些元素擁有n個不同的編號,每個編號正好有兩個 元素。玩家每次可以交換兩個相鄰的元素。如果在交換之後,兩個相鄰的元素編號相同,則將他們都從棧中移除, 所有在他們上面的元素都會掉落下來並且

原创 BZOJ3781 小B的詢問 莫隊

小B有一個序列,包含N個1~K之間的整數。他一共有M個詢問,每個詢問給定一個區間[L..R],求Sigma(c(i)^2)的值,其中i的值從1到K,其中c(i)表示數字i在[L..R]中的重複次數。n,m,K<=50000. 顯然莫隊裸

原创 bzoj3293/1045 [Cqoi2011]分金幣/[HAOI2008] 糖果傳遞 貪心

圓桌上坐着n個人,每人有一定數量的金幣,金幣總數能被n整除。每個人可以給他左右相鄰的人一些金幣,最終使得每個人的金幣數目相等。你的任務是求出被轉手的金幣數量的最小值。n<=1e6. 這個是劉汝佳藍書P4的原題,還蠻巧妙的。 證明這裏也有

原创 BZOJ1305 [CQOI2009]dance跳舞 最大流+二分

一次舞會有n個男孩和n個女孩。每首曲子開始時,所有男孩和女孩恰好配成n對跳交誼舞。每個男孩都不會和同一個女孩跳兩首(或更多)舞曲。有一些男孩女孩相互喜歡,而其他相互不喜歡(不會“單向喜歡”)。每個男孩最多只願意和k個不喜歡的女孩跳舞,而每

原创 BZOJ1007 [HNOI2008]水平可見直線 貪心+棧

給出n條直線,求從y值無窮大處能看見的直線編號.n<=500000. 按照斜率k遞增爲第一關鍵字,與y軸截距b遞減爲第二關鍵字對直線排序. 如果兩條直線斜率不同,那新直線要被看到,必須與之前直線的交點在當前交點的左側。 如果斜率相同,則b

原创 BZOJ1087 [SCOI2005]互不侵犯King 狀壓dp

給定一個n*n的網格,問恰好擺放K個國王的方案數。n,m<=9. 顯然狀壓dp. 因爲國王最多隻能向下影響1行. 預處理出每個狀態爲i的棋子數cnt[i],當前狀態是否合法c0[i],前一行狀態爲j時兩個狀態能否轉移的c[i][j]. 所

原创 BZOJ2151 種樹 貪心+雙向鏈表+優先隊列

這篇題解還是蠻詳細的 http://blog.csdn.net/kaisa158/article/details/46968177 對於連續的三個位置 只可能是取中間最優或兩邊都取最優 每次取出環上的最大值,刪除前驅和後繼 將當前的值改爲

原创 CF1285D Dr. Evil Underscores 01Trie+貪心

給出nnn個整數a1,a2,…,ana_1,a_2,\ldots,a_na1​,a2​,…,an​,要求選出一個整數XXX,最小化max⁡1≤i≤n(ai⊕X)\underset{1 \leq i \leq n}{\max} (a

原创 POJ3461 Oulipo KMP模板

給出S串和T串,求T在S中出現的次數. KMP板子題#include<cstdio> #include<cstring> #include<algorithm> #define LL long long #define clr(x,i)

原创 BZOJ1051 [HAOI2006]受歡迎的牛 tarjan

定義一個點是受歡迎的,當且僅當其他所有點都能到達它.求有多少個這樣的點. 很顯然用tarjan將強連通分量縮點,縮點後出度爲0的點的size就是答案. 如果出度爲0的點有多個則不存在 #include<bits/stdc++.h> #de

原创 BZOJ3612 [Heoi2014]平衡 遞推 整數劃分

#include<bits/stdc++.h> #define LL long long #define clr(x,i) memset(x,i,sizeof(x)) using namespace std; const int N=10

原创 BZOJ4027 [HEOI2015]兔子與櫻花 樹形dp+貪心

刪掉一個結點的代價是c[i]+son[i] 樹形dp+貪心,每個結點顯然選代價最小的兒子 每個結點把兒子排序一下 複雜度nlogn,雖然n<=2e6,但常數很小 一開始想到了 但是沒敢寫。。看了題解發現nlogn能過... #in