題意:
給定平面上n(3<=n<=1200)個無三點共線的點,問這些點組成了多少個銳角或直角三角形;
思路:任意三點可組成乙個三角形,c(n,3);減去鈍角三角形的個數就是銳角或直角三角形的個數了;
計算鈍角三角行的個數時列舉每個點,以這個點為原點,極角排序後計算角度在(pi/2,pi)的個數,最後一減就是答案了;
ac**:
//#include #include #include #include #include #include #include #include #include using namespace std;
#define riep(n) for(int i=1;i<=n;i++)
#define riop(n) for(int i=0;ivoid read(t&num)
int stk[70], tp;
templateinline void print(t p)
while(p) stk[++ tp] = p%10, p/=10;
while(tp) putchar(stk[tp--] + '0');
putchar('\n');
}const ll mod=1e9+7;
const double pi=acos(-1.0);
const ll inf=1e18;
const int n=1203;
const int maxn=1005;
const double eps=1e-10;
double x[n],y[n],temp[2*n];
ll n;
ll cal(ll x,ll y)
{ ll ans=1;
for(int i=0;i
極角排序詳解
極角排序詳解 名詞釋義 在平面內取乙個定點o,叫極點,引一條射線ox,叫做極軸,再選定乙個長度單位和角度的正方向 通常取逆時針方向 對於平面內任何一點m,用 表示線段om的長度 有時也用r表示 表示從ox到om的角度,叫做點m的極徑,叫做點m的極角,有序數對 就叫點m的極座標 四種極角排序 詳解 s...
極角排序理解
這裡我們說的極角排序,指的是對於二維座標中的點,當然也可以說是向量。極角排序的用途一般是預處理二維平面中的點,使之變得相對有序,接下來在有序的條件小用o n 或者o nlogn 處理,而不是無序條件下的o n n 的列舉。應用鏈結 關於叉積 叉積 0是指兩向量平行 重合 叉積 0,則向量a在向量b的...
極角排序 凸包
我的心願是世界和平!方便而且好理解,建議使用。以p 0 為原點。int cmp point a,point b sort p 1,p m,cmp 以p 0 為原點。int cmp point a,point b sort p 1,p m,cmp 以 0,0 為原點。int quadrant poin...