专栏文章

题解:B4182 [中山市赛 2024] 海洋宝宝

B4182题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miq4n1t2
此快照首次捕获于
2025/12/03 22:53
3 个月前
此快照最后确认于
2025/12/03 22:53
3 个月前
查看原文

题解

思路
10pts10pts 代码思路:用一个while循环直到n==m,每次让n*2,计数器++,
code:code:
CPP
#include<bits/stdc++.h>
using namespace std;
long long l,k,r;
int main(){
	scanf("%lld%lld%lld",&l,&k,&r);
	int cnt=0;
	while(l!=r){
		cnt++;
		l*=2;
	}
	cout<<cnt;
	return 0;
}
但是基本全超时了,所以我们要开始优化。
思路
100pts100pts 代码思路:没什么好改的,不过是将 whilewhile 循环的条件改成 l<rl<r ,增加也要改成l+=(l*k)。
code:code:
CPP
#include<bits/stdc++.h>
using namespace std;
long long l,k,r;//不开long long见祖宗
int main(){
	scanf("%lld%lld%lld",&l,&k,&r);//加速读入
	int cnt=0;//计数器
	while(l<r){//优化
		cnt++;
		l+=(l*k);//计算
	}
	cout<<cnt;
	return 0;//养成好习惯
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...