原创 BZOJ1614 [Usaco2007 Jan]Telephone Lines架設電話線 二分/魔性剪枝/最小邊長連通

拿到手感覺是二分。。就隨性用並查集維護連通關係,bfs搜了搜,加了一大堆魔性剪枝,調了一年就過了 正解是二分之後最短路。。超mxlen的長1不超爲0。。我是正解的兩倍慢&&兩倍長←_← upd:我好像隨手剪出了spfa啊233 #inc

原创 Codeforces Round #367 (Div. 2) Vasiliy's Multiset 異或字典樹帶刪除模板

多重集版的異或字典樹,拿之前的板子瞎改了改居然能用,看來功能理解得沒錯。。 莫名wa7,回憶一波代碼意義之後感覺沒問題啊 讀讀題發現這個多重集里居然永遠有0 。。。 賽中能debug出來還是挺開心的 #include<bits/stdc+

原创 tarjan縮點/求橋模板

這麼一看縮點用tarjan也沒必要啊,用之前那個存反向邊dfs兩次的做法就行了縮點過程就是遍歷邊,兩側不同scc就加邊#include<bits/stdc++.h> //#pragma comment(linker, "/STACK:

原创 3-idiots HDU - 4609 FFT模板

給N個木棍問任選三個可組合出三角形的概率 以前寫的,整理整理存個檔 //#pragma comment(linker, "/STACK:1024000000,1024000000") //#include<bits/stdc++.h>

原创 線段樹區間加板子

#include<stdio.h> #include<iostream> #include<string.h> #include<algorithm> #include<queue> #include<string> using name

原创 2017南寧現場賽E 存檔

現場時間不夠,沒加記憶化T了,滾cu 當時還寫錯了mx1,mx2的關係。。。 出場喜聞樂見有人加記憶化傳參遞歸過。。不過似乎是用的map? 這份代碼未必是正解,等到放上hdu交上去試試吧。。歡迎hack! #include<bits/s

原创 BZOJ4017 小Q的無敵異或 好題

給一個序列 詢問這個序列 1:所有子區間的異或值的和 2:所有子區間的和的異或值 第一個操作,拆二進制位,枚舉右端點r,記錄這個位前r個數字0/1的個數,右端點轉移O(1) 第二個操作比較複雜,對於每個右端點要詢問sum[r]-sum[l

原创 895C - Square Subsets 狀壓DP

div2從沒這麼接近過rk100以內的水平。。 想到了奇偶性質模二的素因子表,想到了dp第一維逐漸添加數字,第二維枚舉1<<19大約1e6來更新集合 奈何第一維默認了是1-n,算下來複雜度1e10從而卡手做不下去 沒完整做出來挺遺憾的吧

原创 Codeforces Round #446 (Div. 2) D

討論版提供的一個思路,感覺挺好的 Yes, and it's easy to prove. Let's consider for convenience the permuted arrays a and b: a1<a2<..<

原创 895D - String Mark 組合計數

給你串a串b,問用a的排列生成新串c滿足字典序a<c<b的串c種類數 問題轉化成問f(s),表示用已有字符構建的字符串字典序上小於s,答案就是f(b)-f(a)-1 這樣一轉化就不用枚舉兩個字典序變化點了。。 然後i枚舉字典序變化點,j枚

原创 BZOJ1040 [ZJOI2008]騎士 環套樹/dp

借題區別了一下環套樹和仙人掌 常見做法是拆環做2次DP 鄰接表的話也能做,vis一下封堵點,第二次再vis到放行就好 //#include<bits/stdc++.h> #pragma comment(linker, "/STACK

原创 BZOJ2330 [SCOI2011]糖果 差分約束模板

很久以前學的差分約束,基本忘了,複習一下 a<=b+c,ins(b,a,c)是最短鏈,每個元素最大 a>=b+c,ins(b,a,c)是最長鏈,每個元素最小 #include<bits/stdc++.h> #pragma commen

原创 unique離散化用法

用法類似lower_bound,sort,不過下標從1開始的話和lower_bound減去的東西不一樣 用來離散化很好用 pos就是在原數組a中的rank了,根據cnt建線段樹啥的。。。 sort(a2+1, a2+1+n); cnt

原创 BZOJ1818 [Cqoi2010]內部白點 掃描線/線段求交

毫無頭緒。。hint了一波瞄到了用掃描線做線段求交 想了想開始碼。。過樣例之後謎之wa 估計是加line的時候沒把點做第二維排序,line不是一段一段進去的,加上就過了 //#include<bits/stdc++.h> #pragm

原创 BZOJ1067 [SCOI2007]降雨量 模擬/線段樹/map經驗書

從知道x,y能是沒出現過的我就知道GG了 之前寫的版本耦合太強,完全改不過來只好推掉重寫。。 學到了max_element以及map的一些坑 map的lower_bound熟練度++ #include<iostream> #includ