专栏文章

题解:P11499 [ROIR 2019 Day 2] 故障火星车

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

文章操作

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

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

思路

第1步

首先,根据一点点贪心的思想,得到:每次尽可能加上 2{2},即发送 Y 信号
但是,功率不能是 c 的倍数
所以联想到取模。

第2步

众所周知,大多数情况下,高精度乘/除/取模运算比其加/减运算更加耗时
可以发现如下规律:a÷b=nr{a \div{b} = n …… r}
其中,r{r}余数
可以进一步推出:(ar)÷b=n{(a - r) \div{b} =n}
而每一次的加 2,1{2,1} 不就是给余数加 2,1{2,1} 吗?

第3步

特判:因为如果当前功率加上 2{2}1{1} 没有余数,则清空余数。

代码

CPP
#include<iostream>
using namespace std;
int main()
{
	int a,b,c;
	scanf("%d%d%d",&a,&b,&c);
	int cr=a%c,tt=0;
	while(a!=b)
	{
		if(a+2>b||cr+2==c)a+=1,tt++,cr=0;//余数加上2后没有了 
		else a+=2,tt++,cr+=1;
	}
	printf("%d",tt);
}

评论

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

正在加载评论...