信息学奥赛一本通 1073:救援 | OpenJudge NOI 1.5 19:救援
生活随笔
收集整理的這篇文章主要介紹了
信息学奥赛一本通 1073:救援 | OpenJudge NOI 1.5 19:救援
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目鏈接】
ybt 1073:救援
OpenJudge NOI 1.5 19:救援
【題目考點】
1. 直角坐標系下某點到原點的距離
點(x,y)(x,y)(x,y)到原點的距離d=x2+y2d = \sqrt{x^2+y^2}d=x2+y2?
2. 速度v,時間t,路程s的關系
s=v?ts = v \cdot ts=v?t
3. 循環
【解題思路】
- 輸入每個屋頂的坐標x,y,求出該位置到原點的距離d,d=x2+y2d = \sqrt{x^2+y^2}d=x2+y2?
- 單向路程為d,往返為2d,已知速度v=50v=50v=50,所以去一個屋頂往返用時t1=2d/v=2x2+y250t_1 = 2d / v = \frac{2\sqrt{x^2+y^2}}{50}t1?=2d/v=502x2+y2??
- 輸入每屋頂的人數p,每人上船加下船用時1.5分鐘,這些人上下船總共用時t2=1.5pt_2 = 1.5pt2?=1.5p
- 因而從去救一個屋頂的人的總用時為t=t1+t2=2x2+y250+1.5pt = t_1 + t_2 = \frac{2\sqrt{x^2+y^2}}{50} + 1.5pt=t1?+t2?=502x2+y2??+1.5p
- 循環n次,將救n個屋頂的人的用時加和,即為救援需要的總時間,最后再做一下向上取整。
【題解代碼】
解法1:
#include<bits/stdc++.h> using namespace std; int main() {int n;double x, y, p, time = 0;cin >> n;for(int i = 1; i<=n; ++i){cin >> x >> y >> p;time += sqrt(x*x + y*y) / 50 * 2+ p * 1.5;}cout << ceil(time);return 0; }總結
以上是生活随笔為你收集整理的信息学奥赛一本通 1073:救援 | OpenJudge NOI 1.5 19:救援的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息学奥赛一本通 1128:图像模糊处理
- 下一篇: 信息奥赛一本通(1311:【例2.5】求