生活随笔
收集整理的這篇文章主要介紹了
NYOJ 618 追击
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
追擊
時間限制:
1000?ms ?|? 內(nèi)存限制:
65535?KB 難度:
2
描述
由于洛丹倫南部的獸人暴動,不得不使人類聯(lián)盟采取最后的手段進行鎮(zhèn)壓。國王泰瑞納斯派出了兩位最優(yōu)秀的圣騎士以遏制獸人的不斷騷擾。一位是白銀之手的領(lǐng)袖:光明使者烏瑟爾,一位是他的兒子:阿爾薩斯王子。希望依靠他們的力量終結(jié)這次王國的危機。 阿爾薩斯的部隊來到了位于奧特蘭克山脈的斯坦恩布萊德,在這里他得知了一個不好的消息。村莊里的一名兒童小提米被殘忍的豺狼人抓走了。為了自己的子民,阿爾薩斯決定帶著自己的部隊去營救小提米。 豺狼人帶著小提米從(0,0)處開始沿著路徑y(tǒng)=kx以速度v逃逸,阿爾薩斯的部隊位于(a,b),那么為了使得追擊距離最短并且能正好追上豺狼人,阿爾薩斯的部隊?wèi)?yīng)該采取怎樣的速度呢? 輸入輸入包括多行數(shù)據(jù),每行數(shù)據(jù)有四個數(shù)k,a,b,v,輸入以文件結(jié)尾結(jié)束。注意,0<k,a,b,v<1000。輸出每行輸出一個數(shù),表示阿爾薩斯的部隊的速度。如果不存在這樣的速度,輸出一行Impossible。輸出的數(shù)保留三位小數(shù)。樣例輸入 1 1 1 1
2 2 2 2 樣例輸出 0.000
0.667 簡單的數(shù)學(xué)題! AC碼: #include<stdio.h>
#include<math.h>
int main()
{double k,a,b,v,d,V;while(scanf("%lf %lf %lf %lf",&k,&a,&b,&v)!=EOF){d=fabs(k*a-b)/sqrt(k*k+1); // 點到直線距離公式V=d*v/sqrt(a*a+b*b-d*d); // 推導(dǎo)出來的求阿爾薩斯部隊的速度公式printf("%.3f\n",V);}return 0;
}
總結(jié)
以上是生活随笔為你收集整理的NYOJ 618 追击的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。