給出 三個線段的起點,終點
讓你判斷是否組成乙個a字母
條件如下:
1 有兩線段同端點,並且第三條線段經過了前兩條線段上的點,連線他們
2、有共同端點的兩線段夾角大於零小於等於90度
沒什麼坑。。。老老實實做就是了。。注意一些細節就好
思路: 符合要求的六個點,必然是2個相同,四個分別不同
1、那麼重複次數為2的點個數為1,重複次數為1的點個數為4;(共六個點)
2、找到重複的那個點後,從而確定哪兩條是有公共端點的線段,然後求出他們的夾角(注意是>0&&《90)開始寫成<90
3、判斷第三條線段的端點s是否在line2,是求出其到line2一端的長度是否滿足要求,同理判斷另一側
如果以上有任一不滿足,say no。
都滿足了。。say yes
參考code:
#include #include #include #include #include #include using namespace std;
const double pi=acos(-1.0);
struct point
bool operator==(point &b) const
bool operator<(const point &b) const
double multiply(point sp,point ep,point op)
bool online(lineseg l,point p)
double dist(point p1,point p2)
int main()
__int64 flag=0;
__int64 cun=0;
point who;
who.x=who.y=-1;
for (it=sb.begin();it!=sb.end();it++)
else
if (it->second==1)
cun++;
} __int64 ret=0;
if (cun==4&&flag) ret=1;
if (!ret)
for (i=1;i<=3;i++)
for (i=1;i<=3;i++)
__int64 line2,line3,line1;
if (i==1)
if (i==2)
if (i==3)
point p1,p2;
if (ll[line2].s==who) p1=ll[line2].e;
if (ll[line2].e==who) p1=ll[line2].s;
if (ll[line3].s==who) p2=ll[line3].e;
if (ll[line3].e==who) p2=ll[line3].s;
__int64 flag_angle=0;
double ret_angel= angle(who,p1,p2);
if (ret_angel<0) ret_angel=-ret_angel;
if (ret_angel>0&&ret_angel<=pi/2)
flag_angle=1;
ret_angel= angle(who,p2,p1);
if (ret_angel<0) ret_angel=-ret_angel;
if (ret_angel>0&&ret_angel<=pi/2)
flag_angle=1;
if (flag_angle==0)
__int64 fla=0;
double dis3=0;
double dis2=0;
if (online(ll[line2],ll[line1].s))
if (online(ll[line2],ll[line1].e))
if (fla==0)
fla=0;
if (online(ll[line3],ll[line1].s))
if (online(ll[line3],ll[line1].e))
if (fla==0)
else
printf("yes\n");
}
return 0; }
//57283
CF 13E Holes 塊狀鍊錶
題目描述 一條直線上n個點,每個點有個 彈力 可以把當前位置x上面的ball彈到x a x 上面。兩種操作 0.修改a處的彈力值,程式設計b 1.詢問a點的ball經過多少次能跳出n個點外 就是出界了 求出彈跳的次數和最後落腳的點。塊狀鍊錶就是用來暴力模擬的。用塊狀鍊錶可以把時間複雜度從o n 變成...
計軟對抗賽之 愛上CF
time limit 1000ms memory limit 65536k 有疑問?點這裡 cf,codeforces不是crossfire。身為乙個acmer,re大神與soaring大神最喜歡做每五天一次的cf,從11 30到1 30,然後和逗比學長們一起等著跑資料等到兩點半,然後再一起嘲笑一坨...
北郵計院13上機真題
accept 207 submit 852 time limit 1000ms memory limit 65536kb description 請你計算出第x年y月z日是第x年的第幾天。其中,1月1日是第一天,1月2日是第二天,以此類推。計算時請注意閏年的影響。對於非整百年,年數能整除4是閏年,否...