• 注意测试数据hdu 1010 (DFS+剪枝)


    发一下牢骚和主题无关:

        点击开打链接

        分析:

        BFS,DFS,都可以,只要拍注意剪枝就能够了。

        注意标题中要求只能在T秒到D。

        标题中有坑。测试数据中每行有余多的空格。。。就这一卡点了一个晚上

        

        每日一道理
    毅力,是千里大堤一沙一石的凝聚,一点点地累积,才有前不见头后不见尾的壮丽;毅力,是春蚕吐丝一缕一缕的环绕,一丝丝地坚持,才有破茧而出重见光明的辉煌; 毅力,是远航的船的帆,有了帆,船才可以到达成功的彼岸。
    #include"stdio.h"
    #include"string.h"
    #include"math.h"
    #define zz 10
    
    int mark[zz][zz];
    char map[zz][zz];
    int n,m,t,s,e,ss,ee,f;
    int dir[4][2]={1,0,0,1,-1,0,0,-1};
    
    void dfs(int x,int y,int t)
    {
    	int i,dis;
    	int xx,yy;
    	if(x==ss&&y==ee)
    	{
    		if(t==0)f=1;
    		return ;
    	}
    	if(f==1)return ;
    	dis=abs(x-ss)+abs(y-ee);
    	if(dis>t||(t-dis)%2!=0)return ;
    	for(i=0;i<4;i++)
    	{
    		xx=x+dir[i][0];
    		yy=y+dir[i][1];
    		if(xx>=0&&xx<n&&yy>=0&&yy<m&&!mark[xx][yy]&&map[xx][yy]!='X')
    		{
    			mark[xx][yy]=1;
    			dfs(xx,yy,t-1);
    			mark[xx][yy]=0;
    		}
    	}
    }
    
    int main()
    {
    	int i,j,k;
    	while(scanf("%d %d %d%*c",&n,&m,&t)!=-1&&(n+m+t))
    	{
    		k=0;
    		memset(map,0,sizeof(map));
    		memset(mark,0,sizeof(mark));
    		for(i=0;i<n;i++)
    		{
    			for(j=0;j<m;j++)
    			{
    				scanf("%c",&map[i][j]);
    				if(map[i][j]=='S')
    					s=i,e=j;
    				if(map[i][j]=='D')
    					ss=i,ee=j,k++;
    				if(map[i][j]=='.')
    					k++;
    			}
    			scanf("%*c");
    		}
    		
    		if(k<t)
    		{
    			printf("NO\n");
    			continue;
    		}
    		f=0;
    		mark[s][e]=1;
    		dfs(s,e,t);
    		if(f==1)printf("YES\n");
    		else printf("NO\n");
    	}
    	return 0;
    }

    文章结束给大家分享下程序员的一些笑话语录: 爱情观
      爱情就是死循环,一旦执行就陷进去了。
      爱上一个人,就是内存泄露--你永远释放不了。
      真正爱上一个人的时候,那就是常量限定,永远不会改变。
      女朋友就是私有变量,只有我这个类才能调用。
      情人就是指针用的时候一定要注意,要不然就带来巨大的灾难。

  • 相关阅读:
    03、CPU主频,和性能
    02、计算机组成原理相关知识
    常用正则表达式,手机号、固话号、身份证号等
    01、计算机原理结构,及冯诺依曼体系结构
    7-7 Complete Binary Search Tree (30分) 完全二叉搜索树
    7-2 Reversing Linked List (25分)
    7-1 Maximum Subsequence Sum (25分)
    6-17 Shortest Path [4] (25分)
    6-16 Shortest Path [3] (25分)
    6-15 Iterative Mergesort (25分)
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3055379.html
Copyright © 2020-2023  润新知