[航海]アルゴリズム学習(白駿#2869)


白駿#2869


問題のショートカット
第1ラウンドの解答:“21.06.16
セカンダリプール:「21.007.09」
もんだいぶんせき
カタツムリはVメートルの棒に登った.昼はAメートル、夜はBメートル滑る.登頂後は滑らない.カタツムリは正常まで何日かかりますか?
質問へのアクセス
1.与えられた値:A(日中移動距離)、B(夜間摺動距離)、V(目標高さ)
2.必要な日数を計算...総所要時間X=私たちが探している答え
==1日移動可能距離:目標高さに到達した最終日を除き(X-1)日間(A-B)移動する.最終日だけAに移動します.
==❗️すなわち(X-1)(A-B)+A=V
==Xをまとめると、(X-1)(A-B)=V-A👉 (X-1) = (V-A)/(A-B) 👉 X = (V-A)/(A-B)+1
==所要時間は(V-A)/(A-B)+1
必要な関数
①map(A関数、Bセット)
=(コンセプト)Pythonの内蔵関数として、map以下のBセット(リスト、文字列)にA関数を適用します.AとBの両方を埋めなければなりません.
=(例)map(int,input()👉 int関数をコンソールウィンドウに入力した値に適用します.Inputの場合、デフォルトはstrなので、数値を入力して演算するにはintを適用する必要があります.
② math
=(コンセプト)Python数学モジュール関数、import mathが必要です.昇格、ルート、最値、絶対値などの数学機能に使用します.
==(構文)math.メソッド(変数)👉 方法はceil,abs,max,minなどがある.デフォルトでは、変数はint属性でなければなりません.これは演算を行う関数であるためです.
=(例)math.ceil(3.2) 👉 アップシフト処理を行う4
③ sys
==(コンセプト)クイック入力!Input()とは表面的には同じ役割を果たすが,タイムアウトが発生すると高速入力を用いることで効率を向上させることができる.ただし、input()とは異なり、str文を入力すると「ユーザが入力した文字列+文字(n)」が格納されるため、中はsysとなる.stdin.readline.split("n")を使うと良いです.
==(構文)import sys、sys.stdin.readline(). mathのようにモジュール関数であり、インポートする必要があります.
問題を解く
#1シナリオ
import math
day_move,night_move,tree_height = map(int, input().split())
count = (tree_height - day_move)/(day_move - night_move) + 1
print(math.ceil(count))
#2シナリオ
import sys
import math
day_move,night_move,tree_height = map(int, sys.stdin.readline().split())
count = (tree_height - day_move)/(day_move - night_move) + 1
print(math.ceil(count))