【题解】[牛客网NOIP赛前集训营-提高组(第三场)]C.急开锁 博弈论+打表

题目链接
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述

#include<cstdio>
typedef long long ll;
int t,k,l,r;
ll len,f[4000010];
int main()
{
	//freopen("in.txt","r",stdin);
	scanf("%d",&t);f[0]=1;f[1]=2;
	while(t--)
	{
		scanf("%d%lld",&k,&len);
		l=0;r=1;
		while(f[r]<len)
		{
			r++;
			while(f[l]*k<f[r])l++;
			f[r+1]=f[r]+f[l];
		}
		if(f[r]==len)puts("DOG");else puts("GOD");
	}
	return 0;
}

总结

猜你喜欢

转载自blog.csdn.net/qq_41958841/article/details/83547586