bzoj 2818 兩個互質的數的gcd=1,因此他們同時乘一個素數那麼他們的gcd=這個素數,因此枚舉素數p找n/p之內有多少對互質數,用歐拉函數。數組
bzoj 2809 可並堆,對於每個子樹顯然是選花費小的節點合算,維護一個大根堆,而且當堆的花費和大於m時刪掉堆根。函數
bzoj 2243 樹剖 線段樹區間染色查詢區間顏色段數量,樹剖以後還要考慮兩段銜接以後顏色段是否減小。排序
bzoj 2005 會發現(x,y)到(0,0)路上有gcd(x,y)-1棵植物,即求sum(2*gcd(i,j)-1),(1<=i<=n,1<=j<=m),而後枚舉每個gcd算貢獻度,n之內以i爲因子的數有(n/i)個,還要減去以i的倍數做爲因子的數的個數就不會算重了。這到這算記錄一下就好了gc
bzoj 4034 裸樹剖,更新子樹時直接更新根節點的出點和入點便可。數據
bzoj 2120 分塊,修改時暴力修改查詢
bzoj 2190 歐拉求小於n的和n互質的數枚舉
bzoj 2152 樹形dp,每一個點維護%3的餘數的個數 gcd
bzoj 2002 分塊顏色
bzoj 1257 k%i=k-[k/i]*i,由於 [k/i] 是一段一段的區間的變化的,因此能夠每一段區間求等差數列和再乘上他。
bzoj 1191 裸的二分圖最大匹配,注意當一旦回答錯了問題就會淘汰,所以一旦找不到增廣路就退出。
bzoj 1968 能夠篩出素數亂搞恰好卡過。然而n/i就是n之內的可以整除i的數的個數~
bzoj 1878 很好的樹狀數組題目,離線處理,把詢問的區間按照右值從小到大排序而後依次把數據插入,遇到插入過的就去掉前面插入的並在當前點從新插入,這樣後面詢問的就不會受到影響了