专栏文章
题解:CF2051B Journey
CF2051B题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miqmwq1y
- 此快照首次捕获于
- 2025/12/04 07:24 3 个月前
- 此快照最后确认于
- 2025/12/04 07:24 3 个月前
分析
-
周期计算:
- 计算一个完整周期内的总距离: 。
-
计算完整周期的数量:
- 计算 里面有多少个完整周期: 。
- 所需的天数为 天。
-
处理剩余距离:
- 计算剩余的距离: 。
- 如果剩余的距离 ,则会有额外的天数。
- 从周期的第一天开始,依次检查 ,直到算出额外天数。
-
特殊情况:
- 如果 正好是完整周期的倍数,则不计算额外天数。
-
剩余距离处理:
- 如果 ,则不需要额外天数。
- 否则,依次查询 ,直到找到满足 当前步数的步数。
代码
CPP#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int t;
int main(){
cin>>t;
while(t--){
ll n,a,b,c;
cin>>n>>a>>b>>c;
ll S=a+b+c; //计算一个完整周期
ll k=n/S; //计算完整周期的数量
ll r=n-k*S; //计算剩余的距离
ll days=3*k; //初始天数为3k
if(r==0){
//不需要额外天数
}
else{
if(r<=a){
days+=1;
}
else if(r<=a+b){
days+=2;
}
else{
days+=3;
}
}
cout<<days<<"\n";
}
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...