题解:P11499 [ROIR 2019 Day 2] 故障火星车
fish_love_cat · · 题解
唯一做出来的 /qd
根据贪心的策略肯定是要尽量用 Y。如果再用 Y 会爆炸时再用 X 改变奇偶性挺过去。
容易想到根据
而剩下的情况也是容易找到规律的。难点在于分讨和考虑边界。
那么就做完了。
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b,c;
cin>>a>>b>>c;
if(b/c-a/c==0){
cout<<(b-a)/2+(b-a)%2;
}else if(c%2==0){
if((b-a)%2==0){
if(b%2==0){
cout<<(b-a)/2+1;
}else{
cout<<(b-a)/2;
}
}else{
cout<<(b-a)/2+1;
}
}else{
int x=a-a%c;
b-=x;a-=x;
int ans=(c-a)/2+1;
a=1;
b-=c;
ans+=(b/c)*((c-1)/2+1);
b%=c;
cout<<ans+(b-a)/2+(b-a)%2;
}
return 0;
}
代码极度丑陋 /cf