赛时有点小失误,T4调了半天才发现哪里错了,不过整体而言,整场比赛的体验还是相当好的。
蓝桥的比赛题目质量高,参与度强,而且还有奖金,真的是国内做得非常好的比赛了!
前三题相信大家都会写,这里主要讲一下第四题,这一题是第二题的加强版,我们只需要分三个部分讨论即可,分别是起始点至中间的第一个整点,中间的整点,最后一个整点到终点,最后累加答案即可。具体实现细节可以参考下方代码:
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll a,b,c,f,s;
ll xsqz(double n){
ll m=n;
n-=m;
if(n>0.0001) return m+1;
else return m;
}
int main(){
ll T;
cin>>T;
while(T--){
ll ans=0;
cin>>a>>b>>c;
s=(a/c)*c+1+c;
f=(b/c)*c+1;
// cout<<s<<" "<<f<<endl;
if(a/c != b/c){
ans+=((f-s)/c)*((c+1)/2);
// cout<<ans<<endl;
ans+=((b-f+1)/2);
// cout<<ans<<endl;
ans+=((s-a+1)/2);
cout<<ans<<endl;
}else{
cout<<((b-a+1)/2)<<endl;
}
}
return 0;
}