全國多校重現賽一 D Dying light

2021-09-12 10:24:26 字數 1443 閱讀 1563

input

the first line contains an integer n(3≤n≤1000), indicating the number of mirrors; 

then n lines follow. the ith line contains three real numbers xi,yi,ki(−109≤xi,yi≤109;0≤ki≤0.9)xi,yi,ki(−109≤xi,yi≤109;0≤ki≤0.9), which means the ith mirror's one end is at position (xi,yi)(xi,yi) and another end is at (xi+1xi+1mod n,yi+1yi+1mod n), and its reflectivity is kiki. 

next there are two real numbers vx,vy(-109≤vx,vy≤109), indicating the initial direction vector of the laser beam. 

lsf is standing at the origin (0, 0). 

output

sample input

4

1 2 0.5

-1 0 0.5

1 -2 0.5

3 0 0.5

0 14

1 1 0.5

-1 1 0.5

-1 -1 0.5

1 -1 0.5

1 1

sample output

14

1

題解:因為0.1<=k<=0.9因此最多反射100,就一定可以消失。首先,我們判斷該射線是否可以與鏡面相交,如果與某一鏡面相交,我們再判斷是指向鏡面還是反向指向鏡面的,然後,我們可以計算出射線,與鏡面的交點(用兩個向量的投影相等)。然後更新o點與向量v;

#includeusing namespace std;

struct point point[2010];

point v;

point vec(point a,point b);}

double cha_ji(point a,point b) //判斷是否相交

point jiao_point(point o,point v,point a,point b)//求交點 ;}

double nod(point a,point b)

int main()

{ int n;

while(scanf("%d",&n)!=eof)

{ for(int i=0;i=1e-4)

{ for(int i=0;i

posted @

2018-07-25 17:25

songhl 閱讀(

...)

編輯收藏

牛客 多校賽一

a lgv演算法 抄一波 牛客的解釋 wiki 沒耐心看了 lgv 演算法 lindstr m gessel viennot lemma 求以上矩陣的行列式,其中 e a,b 是從a到b的方法數,帶入求行列式即可得到 a1,a2,an 到 b1,b2,bn 的所有不相交路徑的種數 再看這道題,其實就...

2018全國多校1 B題

做題的時候千萬不要因為為了過樣例把某個數特判了。一定要按著正確的思路去做題qaq 還有就是,做題的時候面多0相關的位置一定要慎重慎重。include include int a 1005 b 1005 c 1005 intcout 0,lss long long shanghai void zhix...

2018全國多校1 F題

稍微有點坑的地方在於。最後一秒鐘要是血不夠扣,只要不是0仍然能夠進去 還有一點就是如果正好扣到0的時候再補血也是死人的,如果你正好跑在最後一秒沒血了也是死 但是如果你最後一秒血量為2,然後一秒扣6滴。這時候你是能夠跑到安全區 include int main run xue a printf d n...