蓝桥杯算法双周赛18题解

赛时有点小失误,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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值