网站后端开发软件,网站停留时间 从哪里获取,郑州市建设投资集团公司网站,比wordpress更好知乎游戏
题目大意#xff1a;
有一个n*n的棋盘#xff0c;有一个坐标在x,y的棋子#xff0c; 1、2号玩家可以将他向左#xff0c;向下#xff0c;向左下#xff08;45∘45^{\circ}45∘#xff09;移动若干格#xff0c;假如他们都是AKIOI聪明绝顶的巨佬#xff0c;请问…游戏
题目大意
有一个n*n的棋盘有一个坐标在x,y的棋子 1、2号玩家可以将他向左向下向左下45∘45^{\circ}45∘移动若干格假如他们都是AKIOI聪明绝顶的巨佬请问1号玩家先出谁可以将棋子移到1,1他的x是从上往下的
样例输入
6
2 4
样例输出
2
数据范围限制
提示
数据说明
30% N500
50% N2000
80% N10000
100% N100000 1I,JN
解题思路
这到题一看就是一道难题就连身为蒟蒻的我也不会做然后想到了一种DP的方法结果↓ 呵呵我真菜×1然后等巨佬讲题后……
哇原来是找规律啊我真菜×2我竟然想不到我真菜×3
回归正题发现的规律是
第一个结果是2是21,2||2,21
第二个结果是2是42,4||4,42
第三个结果是2是53,5||5,53
第四个结果是2是74,7||7,74
可以发现其中一个坐标要增加的数字是1,2,3,4,5,6,7……而本身的数字就是在增加的一串数字但他不能被前面的数字相加而成如246所以没有6
#includecstdio
#includeiostream
#includecstring
using namespace std;
int n,x,y,t,j;
bool p[100005];
int main()
{freopen(game.in,r,stdin);freopen(game.out,w,stdout);while(~scanf(%d %d %d,n,y,x))//多组数据{xn-x1;//求出从下往上的t1;//预处理memset(p,false,sizeof(p));//预处理j0;//预处理for (int i1;ijn;i)if (!p[i])//判断是否被合成过{p[i]true;if (((xi)(yij))||((xij)(yi)))//是否符合{t2;//改变break;//退出 }p[ij]true;//记录j;//}printf(%d\n,t);//输出}fclose(stdin);fclose(stdout);return 0;
}