hdu 3766 Knight's Trip

最近练习BFS,看某位大神博客的小结跟着做来着,然后碰到这个...就是跳马的问题.没给出棋盘,就是说没有范围,n,m可以很大,用BFS数据大一点看着很慢,感觉肯定是过不了,大神博客写着:之前需要逼近下,然后再搜索,或者直接枚举判断下就行了。...俩都不会,无法,看看怎么逼近,尝试一小时还是不会。找个数学大神看看有啥规律可循没有。推出来公式之后一直WA....拿着原先的搜索对照测试结果一样不理解...万万没想到啊万万没想到,卧槽换了一种输入方式就AC了...心中万只草泥马奔腾而过啊,一晚上的时间啊 全部浪费这个题了...

题目几个比较坑的地方:范围真的很大,最起码32M内存你开不起。跳马可以跳到坐标是负的地方- -只能说卧槽.还有就是有几个点要单独处理。附上代码:


#include
#include
int main()
{
    char c[20];
    while(scanf("%s",c),c[0]!='E')
    {
        int x=0,y,flag=1;
        int k;
		for(int i=0;c[i];i++)
		{
			if(c[i]=='-'&&i==0)
				flag=-1;
			else
            x=x*10+c[i]-48;
		}
		x=x*flag;
        scanf("%d",&y);
        if(x<0)
            x=-x;
        if(y<0)
            y=-y;
        if(y


你可能感兴趣的:(数学,数学,据说可以用搜索,据说bfs可以过,内存不够用系列,要特殊的输入技巧)