原题下载
答案:
#include <iostream>
#include <cstdlib>
using namespace std;
typedef long long ll;
int main() {
ll x, y;
cin >> x >> y;
ll ans = 0;
ll by = 1;
ll dir = 1;
while(true) {
// dir == 1 means Farmer John is moving to the right, and
// dir == -1 means he is moving to the left.
if((dir==1 && x<=y && y<=x+by) || (dir==-1 && x-by<=y && y<=x)) {
// We found Bessie!
ans += abs(y-x);
cout << ans << endl;
break;
} else {
// Didn't find Bessie! Add to our running total the cost of
// moving 'by' units away from the start and back again.
// Then multiply our next move's length by 2 and switch direction.
ans += by*2;
by *= 2;
dir *= -1;
}
}
}
以上就是关于【USACO 2017 US Open Contest, Bronze Problem 1. The Lost Cow】的解答,如需了解学校/赛事/课程动态,可至翰林教育官网获取更多信息。
往期文章阅读推荐:
2026 NOAI国际AI奥赛中国站即将开考!赛事地址&日程已出!
2027 USAAIO美国AI奥赛启动报名!MIT/谷歌/Jane Street集体站台!

© 2026. All Rights Reserved. 沪ICP备2023009024号-1