ProblemA Accurate Movement (數論 Math theorm)

題目大意:

有兩個 Box ,這兩個 Box 不可以互相拋棄對方,必須要相互連在一起

他們要走到 n 距離,試問走幾步才能走到?

分析:

數學一直都不是我擅長的阿,好難過 ಥ_ಥ

還是我今年 ICPC 的好夥伴幫我想出的,然後我再理解,邏輯不好rrrrrr
Bill and Entroy 都是 math master

公式: ceiling( (n-b) / (b-a) ) * 2 + 1 ;

n-b 為大箱子到 n 的距離
b-a 為小箱子到大箱子的距離
+1 最後小箱子移動到終點的距離

我還有 n-b 的距離要移動 每次最多只能移動 (b-a) 每次移動的權重為 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <bits/stdc++.h>
#define LOCAL
using namespace std;

int main()
{
#ifdef LOCAL
freopen("in1.txt" , "r" , stdin) ;
#endif // LOCAL
int a , b , n ;
cin >> a >> b >> n ;
int ans , temp ;
temp = (n-b) / (b-a) ;
if( (n-b) % (b-a) != 0 )
temp += 1 ;
ans = temp * 2 + 1 ;
cout << ans ;
return 0;
}
  • 版權聲明: 本部落格所有文章除有特別聲明外,均採用 Apache License 2.0 許可協議。轉載請註明出處!
  • © 2020-2024 John Doe
  • Powered by Hexo Theme Ayer
  • PV: UV: