ACM HDU 1010 Tempter of the Bone

来源:互联网 发布:淘宝diy动铁耳机 编辑:程序博客网 时间:2024/05/20 07:20

开始  就是暴力DFS搜索  没有什么剪枝  于是  TLE

之后发现 要 奇偶剪枝  

http://www.cnblogs.com/zhourongqing/archive/2012/04/28/2475684.html

很详细  即使判断 递归时  是否  那一点与终点最短时间 和 已用时间 之和   被总时间 减去 是否为 偶数 

不是偶数  就return 

虽然这个不好弄  但还是写出来了 

  接下来  WA了 3个小时    怀疑过输入的问题 。。 各种怀疑。。

最终最终  发现时起点  的状态 忘记标记了  坑爹啊。。。

下一次 类似的一定要注意  

还有这是 到终点是否恰好到达 ,  要用DFS  解决

剪枝   

#include<stdio.h>#include<math.h>int n,m,t;int s_x,s_y,e_x,e_y;int flag;char map[20][20];int dir[4][2]={0,1,0,-1,1,0,-1,0};void dfs(int x,int y,int s){    int i,tem,n_x,n_y;    if(flag) return;    if(x==e_x && y==e_y && s==t)    {        flag=1;    }    tem=t-s-abs(e_x-x)-abs(e_y-y);    if(tem%2!=0) return;    for(i=0;i<4;i++)    {        n_x=x+dir[i][0];        n_y=y+dir[i][1];        if(n_x>=0 && n_x<n && n_y>=0 && n_y<m && map[n_x][n_y]!='X')        {            map[n_x][n_y]='X';            dfs(n_x,n_y,s+1);            map[n_x][n_y]='.';        }    }}int main(){    int i,j;    while(scanf("%d%d%d",&n,&m,&t),n||m||t)    {        getchar();        for(i=0;i<n;i++)        {            for(j=0;j<m;j++)            {                scanf("%c",&map[i][j]);                if(map[i][j]=='S')                {                    s_x=i; s_y=j;                }                else if(map[i][j]=='D')                {                    e_x=i; e_y=j;                }            }            getchar();        }        flag=0;        map[s_x][s_y]='X';//就是这条语句   弄得我检查了几个小时 注意啊!        dfs(s_x,s_y,0);        if(flag)            printf("YES\n");        else            printf("NO\n");    }    return 0;}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 sci发表后发现错误怎么办 pos机按键是英文怎么办 蔚县县医院慢病本怎么办 知网下载的论文乱码怎么办 被期刊网骗了怎么办? 缝针缝到神经上怎么办 单位有个事特别多的领导怎么办 网上申请公司核名核不下来怎么办 老公把小三晒朋友圈老婆该怎么办 小三怀孕不愿意打掉怎么办 小三怀孕了引产怎么办 小三发现小四小三发现小四后怎么办 七十岁老人肺癌还有小三样怎么办 留学出国学历公认证怎么办 学历认证报告弄丢了怎么办 想读大专没考上怎么办 学信网身份证被注册了怎么办 学信网手机号换了密保忘了怎么办 学信网手机号改了密保忘了怎么办 学信网手机号忘了密保也忘了怎么办 学信网账号被注销了怎么办 原味奶酪太难吃怎么办 cma年费太贵了怎么办 会计证3年没年检怎么办 幼师面试没有什么特长怎么办 电子学历注册表过期了怎么办 学信网查不到电子注册登记表怎么办 学历证书电子注册备案表过期怎么办 举报人对处理结果不满意怎么办 亚马逊账号申诉后余额怎么办 怎么办北京市工会会员互助服务卡 国家发改委录用公示后怎么办 慕课的账号忘了怎么办 清华同方无线鼠标没反应怎么办 全日制专硕考上公务员了怎么办 超出了期刊编辑部审稿时间怎么办 教师晋职称毕业证丢了怎么办 下属部门一直不交材料怎么办 简书投稿被拒绝怎么办 论文引用文献为0怎么办 小米屏幕录制卸载了怎么办