原创 GarsiaWachs算法

題目描述: N堆石子擺成一條線。現要將石子有次序地合併成一堆。規定每次只能選相鄰的2堆石子合併成新的一堆,並將新的一堆石子數記爲該次合併的代價。計算將N堆石子合併成一堆的最小代價。 例如: 1 2 3 4,有不少合併方法 1 2 3

原创 二分圖最大匹配(鄰接表法)

二分圖最大匹配(鄰接表法) 題目鏈接:https://cn.vjudge.net/contest/181019#problem/F 題目大意:給你一個n*n的矩陣,問你能不能從這個矩陣的所有對角線上各取一個數,這2n-1個數各不相

原创 數論+gcd

洗澡回來遇到個好玩的數論題,想了想還是決定寫篇博客來說說這個題。。。ORZ hdu-5902 這個題呢,說給你n個數(n<=500),每個數小於等於1000,然後每次從這些數裏面任意挑選出三個數,然後隨意取這三個數裏面的兩個數進行

原创 淺談分塊(未完,待續)

分塊 ”一直覺得分塊是一個很高端的東西…一直沒敢碰,現在才知道分塊就是一種稍微優美一些的暴力,所以沒有學過分塊的同學不要害怕啦…”–大佬說 分塊,顧名思義就是將一個整的東西分成無數個小塊,比如一個數組{1,2,3,4,5,6,7,

原创 莫隊+分塊

這個題是bzoj-2038 題目鏈接: 題意:給出n個數字,m次詢問,每次詢問在區間\([l_i,r_i]\)之間任選兩個數字相等的概率是多少。(n,q<=50000) 思路:這道題是比較模板的莫隊分塊了,對於一個區間詢問[L,R],我

原创 Wannafly模擬賽5 A題

題意:你有一個大小爲S的Jabby,每次你可以從你已有的Jabby中選擇一個大小不爲1的Jabby,設他的大小爲Q,然後把它分裂成a和Q−a,其中1≤a<Q,這樣你獲得的收益是a∗(Q−a)給定S,M,求最少分裂幾次才能得到至少M的收益

原创 凸包(判多邊形的凹凸性)

題目:ZOJ-3537 題目大意: 給定n個點的座標,先問這些點是否能組成一個凸包,如果是凸包,問用不相交的線來切這個凸包使得凸包只由三角形組成,根據 cost(i, j) = |xi + xj| * |yi + yj| % p

原创 樹狀數組(一維)

今天學習了一天的樹狀數組,感覺有點小懂,但是理解還不夠透徹,大致現在博客上寫寫心得,下回不會再回過頭來看,,,,ORZ 先講講一維的樹狀數組:· 以下有引用到大牛博客:http://blog.csdn.net/int64ago/a

原创 最短路總結(迪傑斯特拉+floyed+SPFA)

今天突然發現spfa有點忘了,所以寫了這篇博客,回顧回顧最短路算法,方便以後忘了可以複習複習QAQ 最短路三種算法 算法一:迪傑斯特拉算法 注意:注意:迪傑斯特拉要求圖中不能有負權邊 推薦博客: http://www.cnblo

原创 並查集(按秩合併)

並查集-按秩合併 題目:UVA-11354 題目大意:給出一張n個點m條邊的無向圖, 每條邊有一個危險度,有q個詢問, 每次給出兩個點s、t,找一條路, 使得路徑上的最大危險度最小。 思路:首先,我們可以發現,如果求一個最小生成樹

原创 HDU-4462(狀態壓縮,枚舉)

題目:hdu-4462 歡迎轉載,轉載請註明出處。。。 題目大意: n*n(<=50)的地圖上有稻草,有m(<=10)個點沒有稻草可以放稻草人,問最少放幾個稻草人,能守衛所有稻草。不能守衛所有稻草輸出-1。 思路: 枚舉所有情況

原创 圓的一些操作

1、三點求圓心座標和半徑: x0=((y2-y1)(y3*y3-y1*y1+x3*x3-x1*x1)-(y3-y1)(y2*y2-y1*y1+x2*x2-x1*x1))/(2.0*((x3-x1)(y2-y1)-(x2-x1)(y

原创 線段樹(區間修改,單點查詢)

題目鏈接:https://vjudge.net/contest/196267#problem/B 題號:zoj-3284 題目大意:就是給你一個矩陣,讓你實現一些修改和查詢操作 題目思路:建立兩個線段樹,不細說 #include <i

原创 樹狀數組(二維)

今天學習了一維的數組數組,就又學了學二維的樹狀數組, 其實,二維樹狀數組和一維的套路差不多,就是在處理的時候有一點點不同而已。。 一維樹狀數組更新是這樣的: void add(int x,int val) { fo

原创 RMQ算法小結(st實現)

rmq+st RMQ簡單來說就是求區間的最大值(最小值)。 舉個例子: 1 -2 9 10 15 38 -9 這裏有 7 個數(隨便輸的),RMQ就是用來查詢這些數中的