zoj 1158 判斷2線段完全相交

2021-09-30 12:17:01 字數 1125 閱讀 6775

乙個正方形的古老墓園,有n面牆,牆的端點都在正方形的邊上。已知墓碑的地點(x,y),問從外面一直到達墓碑至少要鑿開幾個門,而且規定門只能鑿在當前點段的中點。

思路很巧妙,因為從乙個點到終點不可能「繞過」圍牆,只能傳過去,所以門是否開在中點是無所謂的,只要求四周線段中點到終點的線段與牆的最少交點個數即可。更進一步,實際上,只需判斷四周圍牆的所有點與終點的連線與內牆的最少交點加一即可。

const double eps = 1e-8 ;

double add(double x , double y)

struct point

point(double _x , double _y):x(_x),y(_y){}

point operator + (point o)

point operator - (point o)

point operator * (double o)

double operator ^(point o)

double dist(point o)

void read()

};int intersection(point p1 , point p2 , point q1 , point q2)

struct line

line(point _s , point _t):s(_s),t(_t){}

int intersect(line o)

void read()

friend bool operator < (const line a ,const line b)

};vectorlisline ;

vectorlispoint ;

int main()

ed.read() ;

int ans = 100000000 , sum ;

for(i = 0 ; i < lispoint.size() ; i++)

ans = min(ans , sum) ;

}if(t != 1) puts("") ;

t++ ;

printf("number of doors = %d\n" , ans+1) ;

}return 0 ;

}

洛谷1158 飛彈攔截

經過 11 年的韜光養晦,某國研發出了一種新的飛彈攔截系統,凡是與它的距離不超過其工作半徑的飛彈都能夠被它成功攔截。當工作半徑為 0 時,則能夠攔截與它位置恰好相同的飛彈。但該飛彈攔截系統也存在這樣的缺陷 每套系統每天只能設定一次工作半徑。而當天的使用代價,就是所有系統工作半徑的平方和。某天,雷達捕...

題目1158 買房子

題目描述 某程式設計師開始工作,年薪n萬,他希望在中關村公館買一套60平公尺的房子,現在 是200萬,假設房子 以每年百分之k增長,並且該程式設計師未來年薪不變,且不吃不喝,不用交稅,每年所得n萬全都積攢起來,問第幾年能夠買下這套房子 第一年房價200萬,收入n萬 輸入 有多行,每行兩個整數n 10...

1158 又是排序(指標專題)

1158 又是排序 指標專題 時間限制 1 sec 記憶體限制 128 mb 提交 512 解決 197 狀態 討論版 提交 命題人 admin 題目描述 將輸入的四個整數按由大到小的順序輸出。請你定義乙個四個數排序的函式psort,psort的四個引數為要排序的四個整數變數的位址,請你按照從大到小...