1 条题解
-
0
这道题也算是签到题 能走2和3步意味着能走除1以外所有的步数 所以我们首先能想到如果两者步数相差2步和3步 就能先用 距离/3 再 距离%3 如果有余数 说明还要用2步 我们再在 距离/3 的基础上再+1就好 如果刚好整除那就直接输出 另外如果两者距离等于0 那么输出0 相信这些大家都能想到 但是如果距离为1呢? 题中表明可以随便移动 意味着我们其实可以先退2步 再进3步 来达成 前进1步 所以如果距离为1的特判不是-1 而是2 以下是代码
#include <bits/stdc++.h> using namespace std; using ll = long long; const int N = 2e5 + 10; const int MOD = 1e9 + 7; const int MOD9 = 998244353; const int MOD5 = 5; const ll inf = 2e10 + 7; ll q, d, t, n, k, mod,x,y,r; string s; void solve() { cin>>x>>y; d=abs(x-y); if(d==0) cout<<0<<endl; else if(d==1) cout<<2<<endl; else if(d==2 || d==3) cout<<1<<endl; else { q=d/3; r=d%3; if(r==0) cout<<q<<endl; else cout<<q+1<<endl; } } int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int tt; tt = 1; // cin >> tt; while (tt--) solve(); return 0; }超管留言:fw大王连代码块都不会用(¬‿¬)
- 1
信息
- ID
- 1120
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 306
- 已通过
- 45
- 上传者