题解:P14477 图寻中国
题目传送门
我是蒟蒻,写的可能有点复杂,大佬们请见谅
大概思路
本蒟蒻直接模拟,具体见代码
AC Code:
#include<bits/stdc++.h>
#pragma optimize (1,2,3,"inline")
typedef long long ll;
using namespace std;
ll a,b,c,s=0,i; //s:赢的场数
int main()
{
cin>>a>>b>>c;
for(i=1;;i++)
{
if(a-b<=0)//如果剩余场数小于最多连赢场数,剩下的加到s中,跳出
{
s+=a;
break;
}
a-=b;//一般情况s直接加上最多连赢场数的值,总场数减去最多连赢场数的值
s+=b;
if(a-1<=0)//如果剩下的值不够再输一场,跳出
{
break;
}
if(i==1)//第一次减去最多连输场数
{
a-=c;
}
else//一般情况减去1个就行了
{
a--;
}
}
cout<<s;
return 0;
}