原创 POJ - 2387 Til the Cows Come Home

感覺一直寫的dij堆優化都是假的,最短路板子spfa+ dij堆優化  SPFA #include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> #

原创 Hdu 6534 Chika and Friendly Pairs 莫隊算法+樹狀數組

題目鏈接 題意求給區間[L,R]中有少對(i,j)滿足i<j且abs(a[i]-a[j])<=k. 首先來說暴力的方法就是離散化,然後用樹狀數組來維護,但是m次詢問,m很大,所以說一定會t。 這裏用到了莫對算法分塊來降低複雜度,莫隊算法的

原创 HDU1811 Rank of Tetris 拓撲排序+並查集 OR 差分約束最短路+並查集

題目鏈接 題意:就是給你一堆關係,看能不能排出個確定的順序 做法: 1. 拓撲排序+並查集 應該很容易想到的一種思路,大於小於建立單向邊。對於相等的呢,就把他們縮成一個點。就用並查集縮成一個點就行了 入度爲0進隊列,隊列數目>1,有衝突

原创 Codeforces Round #359 (Div. 2) C. Robbers' watch 暴力枚舉

題目鏈接 題意是真的煩,到最後才知道是n個m其實就是限定表的兩個時區的位數,所以所當數不夠填滿時區的時候前邊自動補零 思路:首先來說不能有重複的數字的話,小時和分鐘的總位數大於7肯定不行。 7的7次方也才823543 所以說我們從把i從0

原创 差分約束-圖論

原文鏈接:https://blog.csdn.net/consciousman/article/details/53812818 差分約束系統 一、何爲差分約束系統: 差分約束系統

原创 P1505 [國家集訓隊]旅遊 樹鏈剖分

題目鏈接 題意:樹上更新某一點權值,更新兩點簡單路徑權值,查詢最大,最小,和 思路:思路應該比較簡單,就是樹鏈剖分後用線段樹維護區間最大最小以及區間和。 但是本題比較特殊的是給的邊權,轉化爲點權即可。但是查詢或者更新兩點x,y之間路徑的時

原创 Too Many Segments CF595D 貪心亂搞

傳送門! 比賽的時候沒有時間寫了,看看了看大佬的代碼,學習學習。 一開始實驗室大佬說是用差分寫的,但是看了代碼發現打cf的人大家都是stl狂魔! 貪心思路:區間按照左端點排序,從1~2e5遍歷每一個點,不是遍歷區間 如果有以該點爲起點的區

原创 E:By Elevator or Stairs? CF595 DP&最短路

題目鏈接 比賽的時候一看,這不是最短路嗎,然後敲了一個最短路。 然後比賽完發現大家基本都寫的dp,我真是個憨憨,dp3行 最短路就建個簡單的圖,dp就是從上一維轉化過來就是了 優秀的dp: //#pragma comment (link

原创 2019南昌網絡賽 C題,Hello 2019

題意:求包含9012,但是不包含8012的最小刪除次數 解題思路:首先將字符串反轉,按照題解思路爲線段樹維護矩陣即可 我們將線段樹的每個區間用矩陣表示,矩陣mat[5][5]維護2019這個序列的情況~ 首先明確矩陣mat表示的意義:我們

原创 洛谷 P2468 粟粟的書架 二分(主席樹+前綴和)

傳送~:https://www.luogu.org/problem/P2468 看了一下數據也發現是兩道題,後邊當他是一個序列(n==1)的時候直接主席樹二分區間前k大和就行了 但是有一個細節我覺得就是直接不去重的離散化會避免很多問題~所

原创 洛谷P1896 [SCOI2005]互不侵犯 狀壓dp+位運算

題目鏈接:https://www.luogu.org/problem/P1896 題意:n*n的格子填數,每個數填放位置的周圍(8個)不能有其他的數 n<=9 ,矩形狀壓 f[i][j][s],f[i][j][s]就表示在只考慮前i行時,

原创 洛谷 P2219修築綠化帶 二維單調隊列~

題目鏈接:https://www.luogu.org/problem/P2219 emmm調了一個上午+中午,fan 題意:從N*M的中找到一個a*b的大矩形和減去a*b中的一個與之不重邊界的c*d的小矩形和最大  二維處理前綴和兩次,分

原创 洛谷P2397 yyy loves Maths VI (mode) 摩爾投票

求衆數的一種方法 不需要內存,排序 每次記錄上次加的值以及個數,相等個數+1,不相等就-1 因爲衆數大於一半 最壞的情況也就是拿一個衆數取走一個非衆數 最後的結果肯定就是衆數 //#pragma comment (linker, "/

原创 P2396 yyy loves Maths VII 狀壓dp 變態卡常

很容易想到dp,但是1<<24都有1600w的複雜度,要是普通做法肯定T掉 共有maxs=(1<<n)-1種情況 首先f[ ]記錄某種情況的方案數,dis[ ]記錄某種情況的步數和 然後每次到dis[i]=厄運值就不更新 解決卡常的方法

原创 P3168 [CQOI2015]任務查詢系統 差分+主席樹

鏈接在這~:https://www.luogu.org/problem/P3168 主席靜態區間修改,單點查詢 區間(L,R)加1可以通過差分以後轉換爲L位置加1,R+1位置減1 我們只需要記錄一下,還是從左往右的這個順序修改(在原來的主