1 条题解
-
0njnu19210225 (季润民) LV 10 MOD @ 2023-07-03 13:53:29
题解
模拟,每次把三个数中的最小数 \(x\) 以最大数 \(z\) 为中点进行跳跃,变为 \(2z-x\),更新最大值并计算次数即可。
示例代码
#include <bits/stdc++.h> #define mod 998244353 using namespace std; using ll = long long int; void solve() { int a, b, c, d, N; cin >> a >> b >> c >> N; int count = 0; while(1) { count++; int x, y, z; x = a; y = b; z = c; x = 2 * z - x; a = y; b = z; c = x; if(c >= N) break; } cout << count << endl; } int main() { ios::sync_with_stdio(false); cin.tie(0), cout.tie(0); int T = 1; cin >> T; while (T--) solve(); return 0; }
- 1
信息
- ID
- 1423
- 难度
- 1
- 分类
- (无)
- 标签
- (无)
- 递交数
- 46
- 已通过
- 36
- 通过率
- 78%
- 上传者