haoi2014 遙感監測解題報告

2021-08-10 08:59:50 字數 868 閱讀 8722

哇這是第乙個部落格~~~~~~~

直接說思路

首先把每個點從左到右排序

然後要把兩個圓的位置關係想好,可以想到圓心位置座標必然是單調遞增的

然後想好怎麼遞推這個最小數目

然後開始列舉

列舉到某個點的時候先判斷是否被前面相鄰的圓包含,包含了就直接跳過

然後使用乙個單調棧維護圓心位置座標

因為每個元素頂多入棧一次,出棧一次

所以時間複雜度是o(n)的

**就醬紫

#include#include//把兩個等圓的位置想透徹即可

#include#include#include#include#include#include#include#include#includeusing namespace std;

#define up(i,a,b) for(int i=a;i<=b;i++)

#define down(i,a,b) for(int i=a;i>=b;i--)

#define cmin(a,b) a=min(a,b);

#define cmax(a,b) a=max(a,b);

#define ll long long

#define out(x) coutinline int read()

while(isdigit(ch))

return x*f;

}void init()

sort(a+1,a+n+1,mycmp);

s[0]=-1600;

}void work()

out(end)

}int main()

HAOI2014 走出金字塔

找規律。不過為了方便,每次我們計算入口和某乙個出口之間需要花費的體力值的時候,不妨把x較小的假設成塔頂,這樣的話另乙個就不需要分類討論了。詳細請看 include include include include include define maxn 1000010 using namespace ...

haoi2014 走出金字塔

在探險的過程中,考古學家dr.kong 無意地被困在乙個金字塔中。金字塔中的每個房間都是三角形。dr.kong可以破壁走到相鄰的房間去。例如,如果他目前處於三角形 2,2 房間,那麼他可以破壁走到三角形 2,1 2,3 或 1,1 房間。但破壁一面牆需要花費k分鐘時間,而考古學家dr.kong 的體...

HAOI2014 走出金字塔 找規律

給定乙個金字塔,有 n 層,m 個出口,破一面牆的時間為 k s 表示體能維持時間。問能否走出,且走出後剩餘的時間。列舉每個出口,試圖計算從每個出口出去的時間 而這就是計算一對點之間的最短路,考慮將最上面那麼點設為塔頂,設它原來的座標為 x 0,y 0 兩者的座標差為 delta x,delta y...