原创 hdu 1245 Saving James Bond(最短路)

題意:一個人從直徑爲15米的小島上踩着鯊魚跳離湖(好奇怪的題目),湖爲100*100的正方形。人最大的跳躍距離爲D,給出n個鯊魚的座標,求人跳出島的最小距離及在這情況下的跳躍次數。建圖有點麻煩#include<stdio.h> #incl

原创 魔法交流活動(kruskal)

魔法交流活動思路:其實就是先求一次最小生成樹把最大的邊權記錄下來,然後對小於這個邊權的邊做一次最大生成樹就可以了#include<stdio.h> #include<algorithm> #include<string.h> using

原创 hdu 4081 Qin Shi Huang's National Road System(次小生成樹)

下面讓我們來分析一下這個題 秦始皇統一中國之後要在全國修公路連接各個城市,摳門皇帝只想修成最小生成樹(距離最小,不考慮人力),一個道士說自己可以不花人力物力修一條路,經過兩方妥協,選擇max(兩個城市人口/(生成樹長度-這條路的長度))的

原创 HDU Going Home(KM算法)

題解:/* 給你一個N行M列的矩陣,其中“.”代表空地,“H”代表房子,“m”代表人,其中有n個房子和n個人。 現在要求每個人進入一間房子,且人走一步需要支付1美元。 求最小需要花費多少美元才能讓所有人都進入到房子中(每個人只能進入一間房

原创 (mark) zznu 我只看看不寫題(貪心+優先隊列)

G : 我只看看不寫題概覽問題列表狀態排名Progress Bar時間限制:1 Sec 內存限制:128 MiB提交:155 答案正確:39提交題目描述 伴隨着科技的發展,我們的生活也越來越多姿多彩,隨着手機的普及,各種交友軟件也在快速的

原创 nyoj 247 虛擬的城市之旅(兩次SPFA求兩點最大差值)

思路:1>   求 1 到所有點的最短路徑, 2>   求 n 到所有點的最長路徑3>   做差。 看是否可達,判斷是否入過隊。 #include<stdio.h> #include<queue> #include<string.h> #

原创 hdu 2255 奔小康賺大錢(KM模板)

模板求最大權匹配  若求最小權匹配,可將權值取相反數,結果取相反數 點的編號從0開始//最大權匹配 #include<cstdio> #define Max 456 #include<cstring> using namespace

原创 hdu Cyclic Tour (1853)

題意:已知城市分爲幾個不相交的環,每個城市只能屬於一個環,一個環最少2個城市,求訪問每一個城市一次的最小代價和,代價是城市之間的邊。換言之,就是把所有城市訪問一遍的最小代價。 解答:以城市之間的路爲邊,城市爲頂點,建立二分圖,KM匹配一下

原创 poj Silver Cow Party (dijkstra)

題意:首行給出N,M,X代表有N個點,M條邊,接着M行每行u,v,w代表u到v權值爲w,這是個有向圖,求出各點到X加上X到各點最小權值中的最大值。思路:把邊的矩陣轉置,再求最短路#include<stdio.h> #include<alg

原创 nyoj 913 取石子(十)

sg函數打表//f[]:可以取走的石子個數 //sg[]:0~n的SG函數值 //hash[]:mex{} int f[N],sg[N],hash[N]; void getSG(int n) { int i,j;

原创 POJ - 1062 昂貴的聘禮 (最短路變形 )

大牛的思路:對於從u點出發到w點的路徑中,他會跟很多等級的人交易,然而必須滿足在路徑中的點等級差不很超過一個M值,那麼怎麼對這樣的問題求解呢?我沒看報告前是很疑惑的!假設如果給這條路徑加上一個附加條件的話,情況可能就有所變化了,要求最短路

原创 Maximal GCD

題意:構造一個長度爲k的嚴格遞增的數組,要求這k個數的最大公約數儘可能的大,且這k個數的和爲n如果不存在這樣的數組請直接輸出 -1.思路;最大公因子i

原创 poj 2253 Frogger

輸出用%lf會錯。。。改成%f#include<stdio.h> #include<string.h> #include<algorithm> #include<math.h> #include<iostream> using names

原创 poj Network of Schools (有向圖的強聯通分量)

題目大意    有N個學校,這些學校之間用一些單向邊連接,若學校A連接到學校B(B不一定連接到A),那麼給學校A發一套軟件,則學校B也可以獲得。現給出學校之間的連接關係,求出至少給幾個學校分發軟件,才能使得所有的學校均可以獲得軟件;以及,

原创 hdu 1907 && hdu 2509

傳送門1907#include <iostream> using namespace std; int main() { /** * 充裕堆: 火柴根數 > 1 * 孤單堆: 火柴根數 = 1 */ int sum1