原创 POJ_1118_Lining Up

///暴力解法,枚舉每兩個點,然後求出在這兩個點所確定的直線上的點的總個數,具體方法 ///主要是利用斜率來比較大小,相等則在同一條直線上,反之在直線外。 ///應該考慮斜率不存在的情況,題目數據有點弱,所以我也沒考慮,其實只要在求斜率

原创 POJ_1002_487-3279

//排序 //可以用到<ctype.h>中的一些函數 //isalnum() 功能:判斷字符變量c是否爲字母或數字 //說明:當c爲數字0-9或字母a-z及A-Z時,返回非零值,否則返回零。 //isalpha() 判斷字符ch是否爲

原创 POJ_1328_Radar Installation

///貪心,將每個島嶼作爲圓心,計算出在座標軸上滿足條件的區間,然後將所有的區間從大 ///到小進行排序,將下一個區間的左邊界與上一個區間的右邊界進行比較,並更新數據。 #include<stdio.h> #include<stdli

原创 POJ_1611_The Suspects

//我寫的沒有用典型的並查集做,利用bfs選擇出受感染的小組,然後再統計這些小組裏共有多少人 #include<stdio.h> #include<string.h> #include<queue> using namespace std

原创 POJ_2084_Game of Connections

//遞推,大數乘法和加法 #include<stdio.h> #include<string.h> int ans[105][200]; int add(int s1[],int s2[]) { int i,j; int temp[

原创 HDOJ_1026_Ignatius and the Princess I

///WA兩次:第一次未清空隊列. 第二次沒有考慮到倒數第二步在打怪的情況,缺少少輸出。 ////廣搜,輸出最佳路徑 ///廣搜:與以前做的題的情況有點不同,不能根據有沒有訪問過這一點而決定是否 ///放棄這個點,即使以前已經訪問過,但

原创 POJ_1083_Moving Tables

///在discuss中看到的方法,將走廊分成200份,統計每一份的次數,最大的乘以10即是結果 ///我的理解是,所有的搬運任務最終都會完成,同一門前同一時間內最多有一張table在搬運 ///,因此200份中最大的代表用的最少的時間。

原创 POJ_1088_滑雪

#include<stdio.h> #include<string.h> int hgt[105][105],f[105][105]; int di[4][2]={-1,0,1,0,0,-1,0,1}; int r,c,max; int

原创 POJ_1050_To the Max

///經典的DP問題,將二維轉化爲一維,即一個序列的連續之和最大 ///先枚舉i,j,i爲起始行,j爲終止行,將從i到j的行對應元素相加,這樣得到一行元素 //求此序列中的最大連續和,如此,便可以得到最大的子矩陣之和。 #include

原创 POJ_1018_Communication System

////枚舉+貪心,枚舉每一個帶寬作爲最小帶寬,然後尋找每一個設備中帶寬大於或等於最小帶寬但是價格最低 ////的設備,比較每一次B/P的結果,取最大值 #include<stdio.h> #include<time.h> int bp

原创 POJ_1655_Balancing Act

//樹形DP,TREE DP。這裏使用鄰接表存儲樹,可以改進的一點就是使用動態分配數組。 #include<stdio.h> #include<stdlib.h> #include<string.h> int f[20001]; in

原创 POJ_1190_生日蛋糕

///經典搜索,還可以繼續剪枝優化 #include<stdio.h> #include<math.h> //S表示最小面積 int N,S,M; //end初始爲0,有解則變爲1.min用來表示每次成功搜索時蛋糕的外表面積 int en

原创 POJ_1694_An Old Stone Game

///對於樹的每一層來說,將這一層每一個節點的需要的石頭的數目計算並存儲,然後對這些數目進行排序 ///從最大的數目開始例如a1,a2 。。。a1滿足,若a1大於a2,則除去a1之後應該還剩a1-1個石頭,又因爲 ///a1大於a2所以a

原创 POJ_1979_Red and Black

//簡單的廣度優先搜索 #include<stdio.h> #include<string.h> #include<queue> using namespace std; queue<int> q; char map[25][25],f[

原创 POJ_1723_SOLDIERS

//水平與垂直互不影響,這是關鍵。 //對於中位數使y方向目標最小,可以這麼理解,例如y1,y2(有序),要使|y-y1|+|y-y2|最小,y必須y2>=y>=y1 //同理y3,y1,y2,y4,|y-y3|+|y-y4|最小,y3