CF2051B Journey
思路
先计算 \(a,b,c\) 都一定会走的次数,也就是 \(n/(a+b+c)\),记结果 \(num\),为然后再一个一个枚举:
- 剩下的 \(n=0\):答案为 \(num\cdot3\)
- 剩下的 \(n\le a\):答案为 \(num\cdot3+1\)
- 剩下的 \(a\lt n\le a+b\):答案为 \(num\cdot3+2\)
- 剩下的 \(a+b\lt n\):答案为 \(num\cdot3+3\)
AC 代码
#include<bits/stdc++.h>
using namespace std;
long long t,n,a,b,c;
int main(){
cin>>t;
while(t--){
cin>>n>>a>>b>>c;
long long num=n/(a+b+c);
n-=num*(a+b+c);
if(n==0) cout<<num*3<<endl;
else if(a>=n) cout<<num*3+1<<endl;
else if(a+b>=n) cout<<num*3+2<<endl;
else cout<<num*3+3<<endl;
}
return 0;
}
标签:num,cout,题解,long,CF2051B,cdot3,Journey
From: https://www.cnblogs.com/JimmyQ/p/18635260