演算法訓練 Pollution Solution

2021-09-10 07:34:38 字數 2037 閱讀 6577

問題描述

作為水汙染管理部門的一名雇員,你需要監控那些被有意無意倒入河流、湖泊和海洋的汙染物。你的其中一項工作就是估計汙染物對不同的水生態系統(珊瑚礁、產卵地等等)造成的影響。

你計算所使用的模型已經在圖1中被說明。海岸線(圖1中的水平直線)為x軸,汙染源位於原點(0, 0)。汙染的蔓延呈半圓形,多邊形代表了被波及的生態系統。你需要計算出生態系統被汙染的面積,也就是圖中深藍色部分。

輸入格式

輸入檔案包含僅包含一組測試資料。

每組測試資料第一行為兩個整數n (3 <= n <= 100), r (1 <= r <= 1000),n表示了多邊形的頂點個數,r表示了汙染區域的半徑;

接下來n行,每行包含兩個整數xi (-1500 <= xi <= 1500), yi (0 <= yi <=1500),表示每個頂點的座標,以逆時針順序給出;

資料保證多邊形不自交或觸及自身,沒有頂點會位於圓弧上。

輸出格式

輸出多邊形被圓心位於原點、半徑為r的半圓覆蓋的面積。

答案的絕對誤差不得超過10^-3。

樣例輸入

6 10

-8 2

8 28 14

0 14

0 6-8 14

樣例輸出

101.576437872

資料規模和約定

存在約30%的資料,n = 3,r <= 20;

存在另外約30%的資料,n <= 10,r <= 100,座標範圍不超過100;

存在另外約10%的資料,n <= 100,r <= 150,座標範圍不超過250;

存在另外約30%的資料,n <= 100,r <= 1000,資料存在梯度;

對於100%的資料,滿足題目所示資料範圍。

思路:

利用叉乘計算任意多邊形面積的方法。

對每一對點先判斷三種情況:

(1)兩個點都在圓內;(2)乙個在圓內,乙個在圓外;(3)兩個點在圓外。

(1)可以直接叉乘計算;(2)找到與圓的交點,分為圓內一點和交點的面積+交點和圓外點形成的扇形面積。 (3)先判斷到原點最短距離的點c是否在圓內,若不在圓內直接計算扇形面積;若在圓內,遞迴計算area(a,c)+area(c,b);(第三種情況可能是1.兩個點均在圓外而且兩點的連線不與半圓相交2.兩點均在圓外但是兩點的連線與半圓相交)

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

const int n=1e2+5;

const int m=n/2;

int n,r;

int x[n],y[n];

struct p

bool incircle()

double cross(p &b)

}; double getarea(p &a,p &b)

double cal(p &a,p &b)

else if(in1!=in2);

if(mid.incircle()==in1)

l=mid;

else

r=mid;

} if(in1)

return a.cross(mid)/2+getarea(mid,b);

else

return getarea(a,mid)+mid.cross(b)/2;

} else;

midr=p;

if(mid.getlength()>n>>r;

for(int i=0;i>x[i]>>y[i];

y[n]=y[0];

x[n]=x[0];

double ans=0;

for(int i=0;i

p b=p;

ans+=cal(a,b);

} printf("%lf\n",ans);0

return 0;

}

DL RBM訓練演算法

在學習hinton的stack autoencoder演算法 reducing the dimensionality of data with neural networks 之前需要了解什麼是rbm,現在就我學習的情況,查詢的資料 大部分來自部落格 簡單介紹一下rbm。當然,這裡面還有同組實驗的同...

演算法訓練 C Calculations

問題描述 c 語言和c 語言非常相似,然而c 的程式有時會出現意想不到的結果。比如像這樣的算術表示式 表示式 基本式 表示式 基本式 表示式 基本式 基本式 增量 係數 增量 增量 a a 係數 0 1 2 1000 如 5 a 3 a a 是合法的c 表示式。計算這樣的表示式的值的方法 首先是每個...

演算法訓練 暗戀

演算法訓練 暗戀 時間限制 1.0s 記憶體限制 256.0mb 問題描述 同在乙個高中,他卻不敢去找她,雖然在別人看來,那是再簡單不過的事。暗戀,是他唯一能做的事。他只能在每天課間操的時候,望望她的位置,看看她傾心的動作,就夠了。操場上的彩磚啊,你們的位置,就是他們能夠站立的地方,他倆的關係就像磚...