原创 poj 2456 Aggressive cows(二分搜素)

題意:直線上N個點,標記其中M個點,使得所有標記點之間最短距離最大,求這個最大的距離。 解題思路:簡單的二分搜索應用。 #include <iostream> #include<algorithm> #include<cstdio>

原创 POJ, 3069Saruman's Army(貪心)

題意:給你n個點,標記其中儘可能少的點,使得n個點都處於被標記點左右不超過R的區間內,可以理解爲蠟燭照亮所有的地方,蠟燭只能放在出現的點處。 先排序,然後貪心。 #include <iostream> #include<cstd

原创 poj,1273Drainage Ditches

單純的最大流問題,單向的。 #include <iostream> #include<vector> #include<cstring> using namespace std; #define N 205 #define INF

原创 POJ 3061 - Subsequence

題意:給你N個數,求總和不小於s的連續子序列的最小長度。 分析:從頭開始先選出大於等於s的子序列和,然後減去該子序列左邊的值,如果小於s,則子序列友繼續往後加,大於s則,繼續減去左邊的值。 #include <iostream>

原创 poj1182食物鏈(並查集)

解題思路:並查集,三個種類,爲每一個動物都創建三個種類,然後每次先判斷輸入是否合理,如果合理然後在聯合。 #include <iostream> #include<cstdio> using namespace std; #def

原创 POJ,2420 A Star not a Tree?(模擬退火算法)

題意:平面上給你n個點,讓你求一個點,到這n點的距離和最小。 分析:模擬退火算法。 #include <iostream> #include<cstdio> #include<ctime> #include<cmath> #incl

原创 uva191 Intersection(線段之間相交)

題意:是否線段與矩形相交,線段在矩形內部也是相交。 公式:p1*p2=(x1*x2,y1*y2)(內積),p1xp2=(x1*y2,x2*y1)(外積) 判斷q是否在線段p1-p2上面,根據(p1-q)x(p2-q)=0來判斷q是否在直線

原创 poj 2348 Euclid's Game

題意:給兩個整數,stan和olice輪流從較大的數中減去較小數字的倍數,不能出現負數,誰在自己回合內得到0,則獲勝,stan先手。,問誰獲勝。 分析:每次令a大於b, 1 如果a-b<b,則只能有一種減的方法,即a=a-b 2. a-

原创 uva11343 - Isolated Segments(兩線段相交)

題意:給你一些線段,求沒有和其他線段相交的線段數量 公式:p1*p2=(x1*x2,y1*y2)(內積),p1xp2=(x1*y2,x2*y1)(外積) 判斷q是否在線段p1-p2上面,根據(p1-q)x(p2-q)=0來判斷q是否在直線

原创 UVA, 753 A Plug for UNIX

題意: 4 4個插座,下面是名稱,不一定時單字母,可能是字符串 A B C D 5 5個設備,名稱 插頭 laptop B phone C pager B clock B comb X 3 3種轉換器 ,個數無限 B X X A X D 

原创 POJ, 1379Run Away(模擬退火算法)

題意:在給定的範圍內找一點,使得該點到所有點距離最小距離最大,求這個最大距離。 分析:模擬退火算法,先隨便找一個點,然後運用模擬退火算法。 退火算法參考:http://www.cnblogs.com/heaad/archive/2010

原创 POJ 2785 4 Values whose Sum is 0(折半枚舉)

題意:給你n個整數的四個數列,從每個數列選出一個數,使得他們相加爲0,求這樣的組合個數,同一個列相同的數當成不同的看待。 分析:直接暴力枚舉,n^4超時,選出兩個進行枚舉得到數組cd,將結果排序,然後對另外兩個進行枚舉,然後二分搜索查找

原创 UVA 10006 - Carmichael Numbers (模平方)

題意:對任意的2<=x<n都有x^n=x mod n成立的合數n稱爲Carmichael number,給定一個整數n,判斷它是不是Carmichael number。 注意:前提條件是合數,用模平方法枚舉所有的x,乘法會超int。

原创 POJ2484 A Funny Game

題意:每次拿兩個或者一個硬幣,兩個必須是連續的,拿完最後的硬幣的人獲勝,alice先拿。 解題思路: 每次後手取和先手對稱的硬幣,後手就絕對會贏,當先手可以在第一次全部取完的情況下,先手贏。 #include <iostream>

原创 POJ 3320 Jessica's Reading Problem(尺取法)

題意:給你一個連續的串,找出一個連續且包含所有出現的數字的子串,求這個子串最短爲多少。 分析:尺取法,先得出出現的不同數字的個數np,然後從頭開始先選出等於np的子序列,然後減去該子序列左邊的值,減去後如果還是等於np,繼續減去左邊的值,