首先附上题面
一.题解部分
简单暴力题,直接暴力就行了(100分到手 ),翻车了两次。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int midpoint=2;
const int out_mid_point=1;
int main()
{
int n;
bool ff=true;
ll sum=0;
int js=0; // js记录连续跳到中心的次数
while(cin>>n)
{
if(n==0&&ff==true)
cout <<sum<<endl;
else
{
if(n==1&&ff==true) //本局第一次跳跃
{
sum+=out_mid_point;
ff=false;
}
else if(n==2&&ff==true) //本局第一次跳跃
{
sum+=midpoint;
js++;
ff=false;
}
else if(n==2&&ff==false)//跳跃到中心
{
sum+=midpoint*(++js);
}
else if(n==1&&ff==false)
{
sum+=out_mid_point;
js=0;
}
else if(n==0&&ff==false)
{
cout <<sum<<endl;
sum=0;
js=0;
ff=true;
}
}
}
return 0;
}
二.翻车原因
- 第一次提交翻车没看清题意,把连续跳跃得分算成2的n次方。
- 第二次提交翻车也是没看清题意,把第一次跳跃到非中心处算成了2分。
三.总结
简单暴力题目一定要完全读懂题意,不可遗漏任何一个条件!