LA 4413 Triangle Hazard 梅涅勞斯定理的應用
題目地址:pdf版本
比如說求A,我們知道了向量PR ,只需要求出PA/PR的值,就知道向量PA,這樣加上P就可以求出A。
關於比例的計算,用到梅涅勞斯定理 純平面幾何內容。
然後簡化計算時,用到了輪換對稱性,減少程式碼量。
程式碼:
#include<iostream> #include<cmath> #include<cstdio> #include<algorithm> const double eps=1e-10; const double PI=acos(-1); using namespace std; struct Point{ double x; double y; Point(double x=0,double y=0):x(x),y(y){} void operator<<(Point &A) {cout<<A.x<<' '<<A.y<<endl;} }; int dcmp(double x) {return (x>eps)-(x<-eps); } typedef Point Vector; Vector operator +(Vector A,Vector B) { return Vector(A.x+B.x,A.y+B.y);} Vector operator -(Vector A,Vector B) { return Vector(A.x-B.x,A.y-B.y); } Vector operator *(Vector A,double p) { return Vector(A.x*p,A.y*p); } Vector operator /(Vector A,double p) {return Vector(A.x/p,A.y/p);} // ps cout ostream &operator<<(ostream & out,Point & P) { out<<P.x<<' '<<P.y<<endl; return out;} bool operator< (const Point &A,const Point &B) { return A.x<B.x||(A.x==B.x&&A.y<B.y); } bool operator== ( const Point &A,const Point &B) { return dcmp(A.x-B.x)==0&&dcmp(A.y-B.y)==0;} double Dot(Vector A,Vector B) {return A.x*B.x+A.y*B.y;} double Cross(Vector A,Vector B) {return A.x*B.y-B.x*A.y; } double Length(Vector A) { return sqrt(Dot(A, A));} double Angle(Vector A,Vector B) {return acos(Dot(A,B)/Length(A)/Length(B));} double Area2(Point A,Point B,Point C ) {return Cross(B-A, C-A);} Vector Rotate(Vector A,double rad) { return Vector(A.x*cos(rad)-A.y*sin(rad),A.x*sin(rad)+A.y*cos(rad));} Vector Normal(Vector A) {double L=Length(A);return Vector(-A.y/L,A.x/L);} Point GetLineIntersection(Point P,Vector v,Point Q,Vector w) { Vector u=P-Q; double t=Cross(w, u)/Cross(v,w); return P+v*t; } double DistanceToLine(Point P,Point A,Point B) { Vector v1=P-A; Vector v2=B-A; return fabs(Cross(v1,v2))/Length(v2); } double DistanceToSegment(Point P,Point A,Point B) { if(A==B) return Length(P-A); Vector v1=B-A; Vector v2=P-A; Vector v3=P-B; if(dcmp(Dot(v1,v2))==-1) return Length(v2); else if(Dot(v1,v3)>0) return Length(v3); else return DistanceToLine(P, A, B); } Point GetLineProjection(Point P,Point A,Point B) { Vector v=B-A; Vector v1=P-A; double t=Dot(v,v1)/Dot(v,v); return A+v*t; } bool SegmentProperIntersection(Point a1,Point a2,Point b1,Point b2) { double c1=Cross(b1-a1, a2-a1); double c2=Cross(b2-a1, a2-a1); double c3=Cross(a1-b1, b2-b1); double c4=Cross(a2-b1, b2-b1); //cout<<c1<<c2<<c3<<c4<<endl; return dcmp(c1)*dcmp(c2)<0&&dcmp(c3)*dcmp(c4)<0 ; } bool OnSegment(Point P,Point A,Point B) { return dcmp(Cross(P-A, P-B))==0&&dcmp(Dot(P-A,P-B))<0; } double PolygonArea(Point *p,int n) { double area=0; for(int i=1;i<n-1;i++) { area+=Cross(p[i]-p[0], p[i+1]-p[0]); } return area/2; } Point read_point() { Point P; scanf("%lf%lf",&P.x,&P.y); return P; } Point getA(Point P,Point Q,Point R,double a,double b,double c) { double r1=a*b/(a*b+1+a); double r2=(c*(a+1))/(1+c*(a+1)); double r=(1-r1)/(1-r1-r2); Vector PA=(R-P)*r; return PA+P; } int main() { int T; cin>>T; Point A,B,C,P,Q,R; double m[6]; double a,b,c; while(T--) { P=read_point(); Q=read_point(); R=read_point(); for(int i=0;i<6;i++) { cin>>m[i]; } a=m[0]/m[1]; b=m[2]/m[3]; c=m[4]/m[5]; A=getA(P, Q, R, a, b, c); B=getA(Q,R,P,b,c,a); C=getA(R,P,Q,c,a,b); printf("%.8lf %.8lf %.8lf %.8lf %.8lf %.8lf\n",A.x,A.y,B.x,B.y,C.x,C.y); } }
相關推薦
LA 4413 Triangle Hazard 梅涅勞斯定理的應用
題目地址:pdf版本 比如說求A,我們知道了向量PR ,只需要求出PA/PR的值,就知道向量PA,這樣加上P就可以求出A。 關於比例的計算,用到梅涅勞斯定理 純平面幾何內容。 然後簡化計算時,用到了輪換對稱性,減少程式碼量。 程式碼: #include<iostre
LA 4413 梅涅勞斯定理
#include <bits/stdc++.h> using namespace std; struct Point { double x, y; Point(double x = 0, double y = 0): x(x), y(y) {} }; typ
uvalive 4413(梅涅勞斯定理)
題意:如圖所示,給出P、Q、R三點的座標,AB、BC、AC被點F、D、E劃分成m1:m2、m3:m4、m5:m6,給出m1~m6的數值,求△ABC的三個頂點A、B、C的座標。 題解:根據梅涅勞斯定理,如果有兩個三角形是這樣組成的: 結論:(BD/DC
Routh-Hurwitz Criterion 勞斯穩定判據
處理方法 函數 -m 要求 case 運用 進行 滿足 不同 Routh-Hurwitz Criterion 為什麽僅僅要有一個極點在右半平面,那麽系統就不會穩定? 比如H(s) =( 1/(s+1) ) * ( 1/(
F1歷屆車隊冠軍榜:梅賽德斯奪得五連冠
11月29日訊息,@北京商報從度小滿金融人士處獲悉,百度正式拿到准許經營證券期貨的許可證。據許可證顯示,機構名稱為北京百度百盈科技有限公司(下稱“百度百盈”),證券期貨業務經營範圍為基金銷售。而今年8月22日,根據北京證監局官網顯示,證監局已核准百度百盈證券投資基金銷售業務資格。 企查查資訊顯示,百度百盈成
F1巴西站正賽成績表/積分榜 梅賽德斯鎖定雙冠
11月29日訊息,@北京商報從度小滿金融人士處獲悉,百度正式拿到准許經營證券期貨的許可證。據許可證顯示,機構名稱為北京百度百盈科技有限公司(下稱“百度百盈”),證券期貨業務經營範圍為基金銷售。而今年8月22日,根據北京證監局官網顯示,證監局已核准百度百盈證券投資基金銷售業務資格。 企查查資訊顯示,百度百盈成
勞斯判據的證明及應用
本文在word上編輯後貼上而來,本文中提及的勞斯判據證明方法不是從赫爾維茨判據而來,而是依據參考文獻1做出的證明,其中與國內教材不同的勞斯表也已做出證明。 補充:後來又做了這個系統的超前滯後校正,貼
演算法-----勞斯-赫爾維茨(Routh-Hurwitz)穩定判據(轉)
判別系統穩定性最基本的方法是根據特徵方程式的根的性質來判定。但求解高於三階的特徵方程式相當複雜和困難。所以在實際應用中提出了各種工程方法,它們無需求特徵根,但都說明了特徵根在複平面上的分佈情況,從而判別系統的穩定性。本節主要介紹代數判據。 (一) 系統穩定性的初步判別 設已知控制系統的特徵方程 式中所有係
【模版】盧卡斯定理
https 常用 分享 for 模版 組合 ron 技術分享 scan 給定n,m,p 求 (m改為n) C表示組合數。 一個測試點內包含多組數據。 輸入輸出格式 輸入格式: 第一行一個整數T,表示數據組數 第二行開始共T行,每行三個數n m p,意義如上 輸出格式: 共T
bzoj 2111: [ZJOI2010]Perm 排列計數 (dp+盧卡斯定理)
dir code def -1 text eight clu 階乘 typedef bzoj 2111: [ZJOI2010]Perm 排列計數 1 ≤ N ≤ 10^6, P≤ 10^9 題意:求1~N的排列有多少種小根堆 1: #i
洛谷——P3807 【模板】盧卡斯定理
|| turn thml 數據 mod text clu -h eset P3807 【模板】盧卡斯定理 題目背景 這是一道模板題。 題目描述 給定n,m,p(1\le n,m,p\le 10^51≤n,m,p≤10?5??) 求 C_{n+m}^{m
【學習筆記】盧卡斯定理
namespace style pan set thml color 怎麽辦 alt fontsize 洛谷 P3807 【模板】盧卡斯定理 題目背景 這是一道模板題。 題目描述 給定n,m,p(1\le n,m,p\le 10^51≤n,m,p≤10?5??) 求 C_{
洛谷 P3807 【模板】盧卡斯定理
cnblogs col define 包含 main radius adg log lag 題目背景 這是一道模板題。 題目描述 給定n,m,p(1\le n,m,p\le 10^51≤n,m,p≤105) 求 C_{n+m}^{m}\ mod\ pCn
Codeforces 451E Devu and Flowers【容斥原理+盧卡斯定理】
d+ 題意 while markdown post mark 色相 esp printf 題意:每個箱子裏有\( f[i] \)種顏色相同的花,現在要取出\( s \)朵花,問一共有多少種顏色組合 首先枚舉\( 2^n \)種不滿足條件的情況,對於一個不被滿足的盒子,我們至
bzoj 1951: [Sdoi2010]古代豬文 【中國剩余定理+歐拉定理+組合數學+盧卡斯定理】
amp == pri pla 質因數分解 b+ return ons gcd 首先化簡,題目要求的是 \[ G^{\sum_{i|n}C_{n}^{i}}\%p \] 對於乘方形式快速冪就行了,因為p是質數,所以可以用歐拉定理 \[ G^{\sum_{i|n}C_{n}^{
洛谷.3807.[模板]盧卡斯定理(Lucas)
lin 不同 階乘 markdown return ++ down .org .com 題目鏈接 Lucas定理 日常水題...sublime和C++字體死活不同步怎麽辦... //想錯int範圍了...不要被longlong坑 //這個範圍現算階乘比預處理快得多 #i
極大似然估計與貝葉斯定理
lan 說明 概率論 可能性 聯合 訓練樣本 對數 www. 條件 文章轉載自:https://blog.csdn.net/zengxiantao1994/article/details/72787849 極大似然估計-形象解釋看這篇文章:https://www.zhihu
淺談盧卡斯定理
smi tdi 能夠 char 快速 get through for 除法取模 前幾天gryz組織我們聽了幾天數論,蒟蒻 Nanjo_Qi 自然是聽得一點問題也沒有。 於是只能自己yy著學一點其他的數學的東西,正巧在那之前剛剛學會盧卡斯定理,於是現在就來水一篇博客。 其實是
Bayes' theorem (貝葉斯定理)
也有 事件 ike 之前 誤差 另一個 nor 條件 一次 前言 AI時代的到來一下子讓人感覺到數學知識有些捉襟見肘,為了不被這個時代淘汰,我們需要不斷的學習再學習。其中最常見的就是貝葉斯定理,這個定理最早由托馬斯·貝葉斯提出。 貝葉斯方法的誕生源於他生前為解決一
洛谷P2480 [SDOI2010]古代豬文(盧卡斯定理+中國剩余定理)
res moto mina spa through 剩余定理 合數 tex pac 傳送門 好吧我數學差的好像不是一點半點…… 題目求的是$G^{\sum_{d|n}C^d_n}mod\ 999911659$ 我們可以利用費馬小定理$