原创 poj3468 A Simple Problem with Integers (線段樹段修改)

題意:線段樹段修改的板子題 思路:套板子,注意mark _down和值都要用longlong #include <cstdio> #include<iostream> typedef long long ll;

原创 kmp3746--kmp搗循環入門題

這題用memset就會wa,有毒 題意:給一個串,可以往這個串首尾加字符,問,最少加多少字符,使這個串變成循環串 思路:使用next[]的一個特性: 原串        abcdeabdabcde next         000

原创 hdu1863 (最小生成樹)

實現了一個prim,然後胡亂套到題裏面 對於不聯通的情況,胡亂判斷一下居然ac了 #include <bits/stdc++.h> using namespace std; const int maxn=10000; int mai

原创 hdu1272&&1325--並查集判環及森林問題

題意:給一個圖,如果圖裏有環或者是森林就輸出"No" 注意空圖算"Yes" 並查集判環:合併集合時,如果出現自己並自己的情況,就說明出現了環 1272: #include <bits/stdc++.h> using namespace

原创 單源最短路與bellmanford

單源最短路問題,就是對一個邊帶權圖G和其上一點s,求G上每一點到s的權最小路 性質: 1.最短路上不會有環             2.將達不到或者暫時達不到的點的距離習慣記做無窮             3.該問題滿足最優子結構,即最

原创 edmonds-karp算法求最大流

ek算法能在o(v*e^2)時間裏求出最大流 思路:每一步對殘量網絡進行一次s到t的bfs,以這次bfs的結果作爲增廣路,更新殘量網絡。用bfs找增廣路可以避免回頭的情況。 也可以用dfs搜,只要能搜出來條路就行 但是光這樣還不行 考慮這

原创 堆--學習記錄

此處默認二叉大根堆 描述:一棵樹,完全二叉(i的左孩子爲2i,右爲2i+1),對於每個節點,它的孩子鍵值小於它,優先隊列就是用堆實現的  性質:1.樹根爲最大點(堆頂),故不斷重複 取頂→刪頂就能得到排序序列(堆排序)          

原创 hdu1698 Just a Hook (線段樹)

題意:給一個大小爲n的數組,初始狀態全爲1 ,進行q次段賦值,問最後的全段和是多少 思路:線段樹段修改模板題(用來寫模板的題)特別的是,由於只有最後一步查詢全段和以及初始狀態全爲1,代碼可以偷工減料 #include <cstdio>

原创 floyd算法-求圖中任意兩點間最短路

floyd算法是一種可以在o(v^3)求出一個圖中任意兩點最短路的算法 輸入:鄰接矩陣d 輸出:直接在d上面修改,每個元素d(i,j)代表點i到點j的最短路 這個算法的代碼非常短,一眼看上去非常暴力 for(int k=1;k<=v;k+

原创 kruskal算法求最小生成樹

kruskal算法是一種使用貪心思路求解無向圖的最小生成樹的算法。 其大體思路爲:將邊按權重排序,然後每次選出權最小且不使圖產生環的邊,作爲樹的邊掛上樹。 具體來講就是這麼兩個步驟:           1.把邊按權重排序。      

原创 hdu1213--並查集入門題

題意:求一共有多少不相交的集合 #include <bits/stdc++.h> using namespace std; const int m

原创 pangu and stones(區間dp)

題意:有N堆石子,每次能夠合併連續的、大於等於L、小於等於R堆石子,代價是這些石子的個數和。問合併成一堆石子的代價最小值。 使用一個dp[l][r][k]記錄將區間[l,r]的石子合併爲k堆需要的最小代價。用一個d[i]記錄第k堆石子有幾

原创 線段樹學習筆記及模板

概括:線段樹是一種數據結構,針對需要動態 修改並且獲取數據中一段信息(子段和,子段最小值等)的數據來使用 大體思路:使用一顆完全二叉樹(數組實現)記錄數據。樹的葉子節點記錄每一個數據元素,非葉子節點記錄段信息。 建樹,查詢,修改都由二叉樹

原创 hdu2759 Billbord(線段樹)

題意:給一個長w寬h的板子,每次往上面貼一個長wi寬1的條子(不可旋轉),共n個,每次貼的時候都貼在能貼的最上行的最左端,若貼不下就不貼            給出w,h,wi,n求每個帖子在第幾行,若貼不下,輸出-1 思路:使用最大值線

原创 hdu1278漂亮面料的設計--模擬

一道純模擬   考細心 有幾個糟點:1.題目要求豎紋反向,但平移的時候加的偏差是正向的,如果看自己輸出反了就單純改下輸出是不行的                         2.最後一列不輸出