原创 HDU 2871 Memory Control

線段樹綜合題,好題。這幾天一直在搞這道題,戰況甚爲慘烈。新手不建議做這道題,但是學完區間合併的請一定要獨立完成此題! 4種操作。 Reset:把所有的清空。 New x:找最左邊的連續x的區間,找到就輸出New at A,否則輸出Reje

原创 HDU 4294 Multiple

dfs。給定n,求n的倍數在m進制下所用的數字種類最少,有多個就輸出最小的那個。就是把HDU 1664 Different Digits 的代碼中的10換成m就過了。 #pragma comment(linker, "/STACK:1

原创 HDU 4046 Panda

樹狀數組。給出一個由b,w組成的字符串,兩種操作,一個是詢問區間[a,b]內wbw的個數,另一個是更改a點的字符。 當連續三個字符符合wbw時在第二個w的下標處(樹狀數組中)加1。每次更新時,分三種情況討論。每次詢問時,注意區間,注意每個

原创 POJ 2155 Matrix

二維入門題。樹狀數組和線段樹都可以,看過論文的話二維樹狀數組就應該能懂,而二維線段樹就要麻煩一些,時刻想着樹套樹。 二維樹狀數組 #pragma comment(linker, "/STACK:1024000000,1024000000

原创 HDU 4288 Coder

線段樹。數據不算多(1e5),但是有點大(1e9),就要離散化一下,又是動態插入刪除,所以必須先離線才能離散化。換句話說就是先把所有可能出現的數字都存起來,然後再把它們映射到0到num,就叫做離線+離散化。 利用sum數組記錄當前節點有多

原创 HDU 4101 Ali and Baba

長着一張博弈臉的搜索題。給出n*m的地圖,有石頭空地若干,還有一個寶藏。正整數表示石頭的hp,0表示空地,-1表示寶藏,而且保證只有一個。AB輪流敲,每次從邊界開始,選一個可達的石頭,敲一下,石頭的hp-1,hp爲零就變成空地了。誰先敲到

原创 HDU 4043 FXTZ II

排列組合求概率。大概是說:有n個小球,第i個(從0開始)小球權值爲2^i,AB兩人等概率取球,也就是說輪到誰不一定,但概率爲50%。要保證A得到的球的總權值比B的小。輸入n時,輸出概率。用分子分母形式表示。分子就是成功的總數,分母就是所有

原创 HDU 4031 Attack

樹狀數組。每個點都有護盾,每次攻擊一片,被攻擊的點就破盾,需要T秒充能,在充能期間被擊中就會受傷,詢問單點受傷次數。 用樹狀數組來維護每個點被擊中的次數,並保存下來攻擊的區間。詢問時先求出該點被擊中次數,再減去成功防禦的次數,就是受傷的次

原创 HDU 4099 Revenge of Fibonacci

字典樹。剛開始用java亂搞了一發,TLE。然後考慮怎樣才能在一堆字符串中找到某個串,使得目標串爲它的前綴(或者找不到)。也只能想到字典樹了。先把每次的數列求出來,多保留幾位來保證精度。 #pragma comment(linker,

原创 HDU 1823 Luck and Love

二維線段樹。糾結了好久的一道題,看來我還是沒太弄懂二維的更新過程,再練幾道,再想想就好了。 單點更新,區間查詢。然後就是模板了。 然而discuss裏有一組數據: 2 I 170 69.3 96.5 Q 144 184 38.3 69.2

原创 HDU 4090 GemAnd Prince

dfs.消寶石,每次可以把同色並且相連的寶石消掉,所謂相連,該格子周圍的8個格子都算是相連。消完之後,要下落,並且把空的列向右移,也就是說,保證前幾列不空,後邊都空。 每次找到一羣可消除的寶石(相連且大於3個),消掉,移動,記錄當前值及最

原创 HDU 1664 Different Digits

bfs.給出一個數n,求n的最小的一個倍數,且包含儘量少的數字種類。語死早啊。。。用人話講就是找個m來整除n,其中,m的各個位數字使用的種類應該最少,多種答案的話輸出最小的m。 用dfs來枚舉每次可用的數字,然後bfs通過餘數判重,求得的

原创 HDU 2821 Pusher

dfs.枚舉每個點作爲起點,然後四個方向移動就行。先把字符串數組轉化爲整數,方便判斷,每次dfs前後,注意修改與恢復。 關於pile能否出界,網上很多人說什麼:不能推出邊界;還有人說什麼:如果只有一個,就可以推出界,多了就不行,等等。但題

原创 HDU 4267 A Simple Problem with Integers

樹狀數組。2種操作,1 a b k c :表示把a到b區間內所有下標爲i且滿足(i - a) % k == 0的值加c,也就是說,下標從a開始,每次加k,直到超過b。2 a:表示詢問a點的值。 當k等於1時,就是成段更新,單點查詢。想到這

原创 HDU 4068 SanguoSHA

很暴力的一道題。問我方是否有一種排列能贏對方的所有排列。枚舉唄。 dfs按字典序求出我方的一個排列,再用這個排列跟敵方的所有排列比,看贏了多少局。 #pragma comment(linker, "/STACK:1024000000,10