原创 【BZOJ 3083】遙遠的國度

BZOJ 3083 遙遠的國度 這題的與 HAOI 2015T2 的不同點在於其有換根操作,但按照普通的思路我們可以發現,換根之後樹的形態會有改變,每個節點的子樹會發生改變,所以我們來分類討論。 修改鏈的操作不會發生改變,現在只考慮子樹m

原创 【NOI 2010】能量採集&&超級鋼琴

其實這兩個題一點關係都沒有,同一天做的,寫在一起= = 能量採集 ans=∑x=1n∑y=1m2∗gcd(x,y)+1 ∑x=1n∑y=1m[d|gcd(x,y)]=⌊nd⌋∗⌊md⌋ code #include<i

原创 【SHOI 2008】【BZOJ 1018】堵塞的交通traffic

發現很多有關區間聯通問題的題線段樹都可以做,不論是1列還是2列。這題的易錯點在於兩個端點x,y 之間的可行路徑不一定在區間[x,y] 之間,有可能是從其他區間繞過來的,想明白這一點,區間的更新又與1列的情況基本類似,這題就很好做了

原创 數論學習筆記

素數: #include<iostream> #include<cstdio> #include<cstring> using namespace std; int p[10000000],a[100000001]; int ma

原创 AC自動機學習記錄

學完了Trie樹和KMP算法,我們就可以繼續學習AC自動機了。。。 AC自動機,全名Aho-Chorasick string match(不是所有題都可以AC的意思= =,否則OI比賽還有什麼意義),由於多模板的字符串匹配,其基本做法是在

原创 樹鏈剖分學習筆記

暫時搞完一系列字符串算法之後,開始了樹鏈剖分算法的學習。 樹鏈剖分算法,說白了就是一種特殊的DFS序(通過把節點分爲重節點和輕節點來保證線段樹的時間複雜度)然後在線段樹上亂搞。 題目分爲點權和邊權兩類,點權好理解一些,邊權可以轉化爲邊在樹

原创 KMP算法學習筆記

KMP是一種字符串匹配算法,網上有許多的講解和介紹,都非常清楚明白,這裏只說明一點next[i]表示[1,i-1]位中的最長公共前綴後綴,因此在遇到字符不匹配時,直接將字符串右移j-next[j]位即可。不多說了,直接上習題 POJ 34

原创 【codevs 3304~3306】水果姐逛水果街系列

這題的坑開了很久了,3305大概是在NOIP之前學線段樹的時候AC的,3306也是當時學完LCA後不斷提交不斷WA,當時基本已棄坑。。。 最近學了樹鏈剖分之後似乎覺得這倆題可做,於是搞了一個晚上,終於搞完了(蒟蒻就是蒟蒻)。。。。。。 3

原创 樹上點分治學習記錄

跟着機房的潮流學了點分治,發現這個東西其實還蠻好寫的,學會思想,很容易YY出來。直接上習題。 POJ 1741 TREE 點分治的模板題,首先設點x 到當前子樹跟root 的距離爲gx ,則滿足gx+gy≤k 可以加進答案,但

原创 【BZOJ 2818】Gcd

這題一開始我竟然想要用與能量採集差不多的思路去做= =(no zuo no die,why you try?) 有個顯然的轉化 ∑nx=1∑ny=1[gcd(x,y)==P]=∑⌊n/P⌋x=1∑⌊n/P⌋y=1[gcd(x,

原创 【HAOI 2007】【BZOJ 1053】反素數ant

雖然這題很水,但蒟蒻還是想了很久。 首先由一個很顯然的結論,這題只會用到10個質數。 一個感性的證明: 設有一數x=pk11+pk22+...+pkmm 那麼我們現在要給x 乘上一個質數,使它的約數數目最多且相對較小。 顯

原创 【JSOI 2008】【BZOJ 1014】火星人prefix

這題其實很奇怪,一眼看出fhq treap+字符串hash。。。 結果在BZOJ被卡常了,結果學長告訴我了一些優化,有些自己還不會寫,只寫了inline和吧unsigned long long改爲unsigned int。。。

原创 【BZOJ 1010】【HNOI 2008】玩具裝箱 toy

藉着這個題學習了一下dp的斜率優化,感覺這東西好神啊。。。 先說一下裸的O(n2 )dp吧: 設 s[i]=∑j=1ic[j]+i 題目中的 L=L+1 顯然我們有 f[i]=mink=0i−1f[k]+(s[i]−s

原创 【JSOI 2008】【BZOJ 1016】最小生成數計數

這題題目中有一個很顯眼的提示,每種權值的邊不會超過10條,這提示我們可以採用些暴力方法。 首先在每個最小生成樹中有兩個結論: 1、每種權值的邊數相等。 2、每種權值所選邊構建後圖的聯通形態相同。 1比較好理解,若1不成立,

原创 翔特卡洛和解題報告

題目 : 定義:Ai=(1023imod109)xor(1025imod109) 求 : Sum=∑i=l1r1∑i=max(i,l2)r2maxk=ijA[k]−mink=ijA[k] 多組詢問 Limit: 1≤t