原创 POJ2524
#include <iostream> #include <cstring> #include <string> #include <queue>
原创 poj3026
題意:給一個迷宮,S,A,空格都可以走,問以最短步數走完全部S和A的最短路,把S和A看成點,先分別求出兩兩最短路,然後求最小生成樹。 #include <iostream> #include <cstring> #include <str
原创 關於最短路
把最近做的幾道最短路一起總結一下吧 poj1062 中文題,不解釋題意,對於渣渣來說,是先看別人題解後才做的,以酋長的允諾作爲目標點,每一個物品與替換物之間會有一條邊,由於交換有限制,所以建完圖後,以每一個點爲終點或是
原创 POJ1442
題意::給定M個數,每次可以插入序列一個數;再給N個數,表示在插入第幾個數時輸出一個數,第一次輸出序列中最小的,第二次輸出序列中第二小的……以此類推,直到輸出N個數。 用兩個優先隊列動態維護,因爲插入第幾個數時輸出第i個最小,序列是動態的
原创 poj1094
拓撲排序:對每一條式子建圖,然後做一次拓撲排序,每一次操作後需要判斷是否有環,是否有序,如果無序則繼續下一個操作。拓撲操作是先建完圖後每次找入度爲零的點,然後斷掉這個點與圖內其他點相連的邊,接着繼續重複,如果找不到入度爲零的點則存在環 #
原创 POJ2299
歸併排序,主要是,題目可轉換爲求逆序數的問題 #include <iostream> #include <cmath> #include <cstring> #include <cstdio> #include <algorithm> u
原创 POJ3292
水題,給出一個數n,求在1到n中,剛好是由兩個模4餘1的素數相乘得到的數有多少個 #include <iostream> #include <cstdio> #include <queue> #include <algorithm> #i
原创 POJ1837
這道題的做法是:用dp[i][j]表示掛滿前i個鉤碼後平衡度爲j的方法數,所以對於每一個平衡度j都有可以是由不同數量的鉤碼達到,只是鉤碼掛在哪裏,所以從第一個鉤碼,第一個平衡度,開始遍歷,每遇到一個dp[i-1][j]都可以推出下一個dp
原创 poj1577
就是搜索二叉樹,樹的左兒子比她小,右兒子比她大,本來用遞歸插入,不知道爲什麼輸不出。。。。。。 #include <iostream> #include <string> #include <stack> using namespace
原创 poj2488
水題,不解釋。。。 #include<iostream> #include <cstring> using namespace std; int dir[8][2]={{-1,-2},{1,-2},{-2,-1},{2,-1},{-2,1
原创 poj1068
做水題做的好開心,簡單模擬題。。。。。。 p是每一個右括號前有多少個左括號,求出w,w表每一個右括號前第幾個左括號與他匹配。。。 直接根據p模擬出整個括號字符串,然後每遇到一個右括號,向前數第幾個左括號與她匹配 #include <ios
原创 poj3020
一些常用性質: 對於無向圖: 最小點覆蓋+最大獨立集=頂點個數 最大團=補圖的最大獨立子集 關係1:給定圖G = (V,E)無孤立點,則G的極大點獨立集都是G的極小支配集。 關係2:G的點覆蓋數 a與點獨立集數 b滿足:
原创 poj3259
題目大意是,F個農場,N點,m條無向邊以及每兩個連接的點要花費的時間,w條有向邊,從一點到另一點可減少一定時間,問是否有可能問你從某個點開始走,能回到從前。 兩種解法 spfa #include<iostream> #include<c
原创 poj2635
#include <iostream> #include <cmath> #include <algorithm> #include <cstrin
原创 poj2442
第一次寫堆,估計也可以用優先隊列做,給一個m*n矩陣,每行任取一個數出來,求最小n 數和。從第一行到第i行,用一個堆去存儲前i行,最小的n個i數和。 #include <iostream> #include <cstring> #incl