name: p1072新年趣事之債務
author: goal00001111
18-12-08 12:15
description:
背景 background
在hnsdfz的資訊組裡,vivian snow、charles和sunnypig之間有著一種奇怪的債務關係:vivian snow欠了charles一百塊錢,charles欠了sunnypig一百塊錢,sunnypig欠了vivian snow一百塊錢。
描述 description
一天,三個人遇到了一起。由於他們都不夠理智,一心想要回自己借出去的錢,於是互相之間追逐起來。最初,三個人分別站在乙個邊長為l正三角形的三個頂點上。某乙個時刻,三個人同時開始以速度v勻速運動。他們運動的方向是這樣的:每乙個時刻,vivian snow運動的方向指向sunnypig,sunnypig運動的方向指向charles,charles運動的方向指向vivian snow,總之,每乙個時刻,三個人都在盡快的接近各自欠自己債的人。最終,三個人都到達了同乙個點上,並且通過和談的方式解決了這一衝突。
xiaomengxian知道此事後,想寫一篇報道,宣傳這件事情。他想知道每個人走的路程的長度s,以及他們到達同乙個點所需要的時間t。
輸入格式 input format
輸入檔案有兩行。
第一行為乙個實數l(0<=l<=1e100)。
第二行為乙個實數v(0<=v<=1e100)。
輸出格式 output format
輸出檔案有兩行。
第一行為乙個實數s,保留一位小數。
第二行為乙個實數t,保留一位小數。
樣例輸入 sample input
13.05
0.56
樣例輸出 sample output
8.7
15.5
題目分析:
本題看似很難,因為三人的運動方向時刻變化。似乎可以利用數學函式和極限的思想來解,但是我不會。
所幸我學了物理,恰好又懂得點向量的分解原理,速度是向量,根據運動學公式:位移=平均速度*時間。
三人最終相聚於正三角形的中心。由於三人的速率不變,所以平均速度和平均速率大小相等。
將某人的速度分解到指向中心方向為v = vcos30',位移為頂點到中心的距離,即s = l/sqrt(3)。
所以時間為t = s/v = 2l/3v;路程為s=vt。
說明:
演算法思想:速度分解和運動學原理。
資料結構:基本資料型別。
時間複雜度:o(1);
空間複雜度:o(1);
程式語言:分別用c++和pascal實現。
附註:不懂速度分解和運動學公式的去看看高中物理書吧。
c++**:
#include
#include
using namespace std;
int main(int argc, char* argv)
pascal**:
program p1072 (input, output);
varl, v, s, t : real;
begin
read(l);
read(v);
t := 2 * l / 3 / v;
s := v * t;
writeln(s:1:1);
writeln(t:1:1);
end.
P1072新年趣事之債務
題目背景 在hnsdfz的資訊組裡,vivian snow charles和sunnypig之間有著一種奇怪的債務關係 vivian snow欠了charles一百塊錢,charles欠了sunnypig一百塊錢,sunnypig欠了vivian snow一百塊錢。問題描述 一天,三個人遇到了一起。...
vijos1072 新年趣事之債務
題目背景 在hnsdfz的資訊組裡,vivian snow charles和sunnypig之間有著一種奇怪的債務關係 vivian snow欠了charles一百塊錢,charles欠了sunnypig一百塊錢,sunnypig欠了vivian snow一百塊錢。問題描述 一天,三個人遇到了一起。...
Vijos 1072題 新年趣事之債務
在hnsdfz的資訊組裡,vivian snow charles和sunnypig之間有著一種奇怪的債務關係 vivian snow欠了charles一百塊錢,charles欠了sunnypig一百塊錢,sunnypig欠了vivian snow一百塊錢。一天,三個人遇到了一起。由於他們都不夠理智,...