P1072新年趣事之债务解题报告
来源:互联网 发布:永恒的记忆js下载 编辑:程序博客网 时间:2024/05/01 09:46
Name: P1072新年趣事之債務
Copyright: 始发于goal00001111的专栏;允许自由转载,但必须注明作者和出处
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<iostream>
#include <iomanip>
using namespace std;
int main(int argc, char* argv[])
{
double L, V, S, T;
cin >> L >> V;
T = 2 * L / 3 / V;//s = L/sqrt(3); v = Vcos30';t = s/v = 2L/3V
S = V * T;
cout << setiosflags(ios::fixed) << setprecision(1) << S <<endl; //保留一位小數
cout << setiosflags(ios::fixed) << setprecision(1) << T <<endl; //保留一位小數
system("pause");
return 0;
}
PASCAL代码:
PROGRAM P1072 (INPUT, OUTPUT);
VAR
L, 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.
Copyright: 始发于goal00001111的专栏;允许自由转载,但必须注明作者和出处
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<iostream>
#include <iomanip>
using namespace std;
int main(int argc, char* argv[])
{
double L, V, S, T;
cin >> L >> V;
T = 2 * L / 3 / V;//s = L/sqrt(3); v = Vcos30';t = s/v = 2L/3V
S = V * T;
cout << setiosflags(ios::fixed) << setprecision(1) << S <<endl; //保留一位小數
cout << setiosflags(ios::fixed) << setprecision(1) << T <<endl; //保留一位小數
system("pause");
return 0;
}
PASCAL代码:
PROGRAM P1072 (INPUT, OUTPUT);
VAR
L, 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新年趣事之债务解题报告
- P1072新年趣事之债务
- Vijos P1072-新年趣事之债务【物理】
- [vijos1072] 新年趣事之债务
- 新年趣事之债务vijos
- Vijos 1072题:新年趣事之债务
- 新年趣事之打牌
- 新年趣事之游戏
- 新年趣事之打牌
- 新年趣事之打牌
- 新年趣事之打牌_DP
- vijosP1071 新年趣事之打牌
- 1071.新年趣事之打牌
- P1070 新年趣事之游戏
- NOIp2009TG T2/Luogu P1072 Hankson的趣味题 解题报告
- 新年趣事
- vijos 1071 新年趣事之打牌
- Vijos - P1071 新年趣事之打牌
- 借助 Picasa Web Albums 开发 PHP 应用程序
- IBM AIX 持续可用性: 第 8 部分
- 学黑客必去的网站“黑客基地”
- Eclipse远程调试Tomcat
- “觅食”难啊
- P1072新年趣事之债务解题报告
- 让input表单不保存历史记录的方法
- 人民币大小写转换的问题
- 解释泛型的基本原理
- 什么是面向对象编程
- Java Sound Program( Capture And Playback) from developer.com
- 向网易负责互动的编辑致敬……
- 随意移动图片!
- 切勿做“心理奴”