Eddy’s research II
原题链接https://vjudge.net/contest/349774#problem/H
本题主要是对方程的一点小优化,直接抄方程的话会t;
经过计算可以发现一些规律
m=0;时输出n+1;
m=1;时先把n–一直到0 再递归会来,最终会得到n+2;
m=2和m=3的情况直接套用公式,
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
long long di(long long x,long long y)
{
if(x==0)
{
return y+1;
}
if(x==1)
{
return 2+y;
}
if(x==2)
{
if(y>0)
{
return di(1,di(2,y-1));
}
else
{
return di(1,1);
}
}
if(x==3)
{
if(y>0)
{
return di(2,di(3,y-1));
}
if(y==0)
{
return di(2,1);
}
}
}
int main()
{
long long n,m;
while(~scanf("%lld %lld",&m,&n))
{
long long sum=di(m,n);
printf("%lld\n",sum);
}
return 0;
}