龟兔赛跑题解
2025-07-23 18:23:20
发布于:浙江
0阅读
0回复
0点赞
复杂度O(n*T)(单个点O(n),T个点),属于模拟
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--)//多组数据输入模版
{
int n;
cin>>n;
int turtle=0,rabbit=0,i=1;//turtle乌龟,rabbit兔子,第i分钟
while(i<=n)
{
//注意:即使在兔子查看进度那一次,乌龟和兔子也会先跑,然后兔子才会看
turtle+=3;
rabbit+=9;
if(i%10==0 && rabbit>turtle)
{
if(n-i>=30) i+=30,turtle+=90;//剩余时间>=30,直接做
else
{
turtle+=3*(n-i);//兔子休息时比赛结束,将乌龟的移动距离计算一下(S=Vt
break;
}
}
i++;//下一分钟
}
//判断谁赢了和赢家跑的距离,输出结果
if(turtle>rabbit) cout<<"@_@ "<<turtle<<"\n";
else if(turtle<rabbit) cout<<"^_^ "<<rabbit<<"\n";
else cout<<"-_- "<<rabbit<<"\n";
}
return 0;
}
这里空空如也
有帮助,赞一个