这是一道略复杂的常规BFS题,但我想用DFS来解决,结果写出代码却总是主函数异常返回,不知哪里错了,检查半天也没发现,以后再看看吧。

Code

#include<iostream>
#include<cstdio>
#include<string>
#include<vector>
#include<algorithm>
#include<cstdlib>
#include<cmath> using namespace std; struct stone{int T,X,Y;};
bool cmp(stone S1,stone S2){return S1.T<S2.T;}
int M,b[305][305],m[305][305],Tmin[90005],p,tmin=99999999,obx,oby;
stone S[50005]; void dfs(int t,int no,int x,int y)
{
if(t>Tmin[p]||m[x][y]==0||x>300||y>300||t>90000-M)return;
if(obx==x&&oby==y)
{
Tmin[p]=min(Tmin[p],t);
return;
}
if(no<=M)
{
while(S[no].T<=t)
{
m[S[no].X][S[no].Y]=0;
m[max(0,S[no].X-1)][S[no].Y]=0;
m[S[no].X+1][S[no].Y]=0;
m[S[no].X][S[no].Y+1]=0;
m[S[no].X][max(0,S[no].Y-1)]=0;
no++;
}
}
/*for(int i=0;i<=10;i++)
{
for(int j=0;j<=10;j++)
{
cout<<m[i][j]<<' ';
}
cout<<endl;
}*/
if(x<300&&m[x+1][y]==1)
{
m[x][y]=0;
dfs(t+1,no,x+1,y);
m[x+1][y]=1;
}
if(y<300&&m[x][y+1]==1)
{
m[x][y]=0;
dfs(t+1,no,x,y+1);
m[x][y]=1;
}
if(x>0&&m[x-1][y]==1)
{
m[x][y]=0;
dfs(t+1,no,x-1,y);
m[x][y]=1;
}
if(y>0&&m[x][y-1]==1)
{
m[x][y]=0;
dfs(t+1,no,x,y-1);
m[x][y]=1;
}
return;
} int main()
{
cin>>M;
for(int i=1;i<=90000-M;i++) Tmin[i]=609;
for(int i=1;i<=M;i++)
{
cin>>S[i].T>>S[i].X>>S[i].Y;
b[S[i].X][S[i].Y]=1;
b[S[i].X+1][S[i].Y]=1;
b[max(0,S[i].X-1)][S[i].Y]=1;
b[S[i].X][max(0,S[i].Y-1)]=1;
b[S[i].X][S[i].Y+1]=1;
} sort(S+1,S+M+1,cmp);
for(int i=0;i<=300;i++)
for(int j=0;j<=300;j++)
{
if(i==0&&j==0)continue;
if(b[i][j]==0&&i+j<tmin)
{
for(int ii=0;ii<=300;ii++)
for(int jj=0;jj<=300;jj++)
m[ii][jj]=1;
p++;
obx=i;
oby=j;
dfs(0,1,0,0);cout<<2<<endl;
tmin=min(tmin,Tmin[p]);
}
}
if(tmin==99999999)
cout<<-1;
else
cout<<tmin;
return 0;
}

P2895(未解决)的更多相关文章

  1. C/C++编译和链接过程详解 (重定向表,导出符号表,未解决符号表)

    详解link  有 些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicated external simbol的错误信息不知所措(因为这样的错 ...

  2. 直接请求json文件爬取天眼查企业信息(未解决验证码问题)——python3实现

    几个月前...省略一堆剧情...直接请求json文件爬取企业信息未成功,在知乎提问后,得到解决,有大佬说带上全部headers和cookie是可以的,我就又去试了下,果然可以(之前自己试的时候不行,没 ...

  3. 记一次未解决的异常:java.lang.NoClassDefFoundError: net/sf/json/JSONObject

    原因:Jetty会导致这个问题,Tomcat可以正常启动   一.异常产生现象 使用json-lib转换实体类/字符串,跑单元测试没问题,但是启动jetty后调用JSONArray.fromObjec ...

  4. Ajax返回中文乱码问题(未解决)

    (未解决) 暂时使用办法:改用返回Map<String,String>形式的返回值,在ajax中获取json形式的数据.

  5. openerp学习笔记 计算字段、关联字段(7.0中非计算字段、关联字段只读时无法修改保存的问题暂未解决)

    计算字段.关联字段,对象修改时自动变更保存(当 store=True 时),当 store=False 时,默认不支持过滤和分组7.0中非计算字段.关联字段只读时无法修改保存的问题暂未解决 示例代码: ...

  6. oracle,wamp,FZ突然出现问题,求解决方案(未解决,最终系统还原)

    -----背景------- 系统:win7  64位oracle 11g(11.1)每天都用oracle.用toad for oracle .电脑固定IP.未更改任何配置信息.用了几个月,突然出现了 ...

  7. (转载) C/C++编译和链接过程详解 (重定向表,导出符号表,未解决符号表)

    转载http://blog.csdn.net/neo_ustc/article/details/9024839 有 些人写C/C++(以下假定为C++)程序,对unresolved external ...

  8. tomcat中显示本地图片①(未解决)

    <本模块文仅作为学习过程中的自我总结,有需要可参看,欢迎指导与提出建议,很多地方可能断章取义,理解不到位,虚心求学.谢谢!> 资料查阅原因:2018/7/10(做项目中显示详情页面,从数据 ...

  9. JIRA状态为任务结束,但是解决结果为未解决相关配置

    1.JIRA状态为任务结束,但是解决结果为未解决,如下图所示: 2.在工作流->界面->结果处理中进行解决结果的配置(首先确保界面配置中有“解决结果”字段). 3.点击“结果处理”,进行结 ...

  10. [未解决]Exception in thread "main" java.lang.IllegalArgumentException: offset (0) + length (8) exceed the capacity of the array: 6

    调用这个方法 是报错,未解决 binfo.setTradeAmount(Double.parseDouble(new String(result.getValue(Bytes.toBytes(fami ...

随机推荐

  1. 2023年的PHP项目部署笔记。什么?还有人用PHP?

    前言 这是我第一次用 PHP 的包管理工具 composer 一开始用 docker 进行部署,但一直出问题,最后还是选择直接在服务器上安装 php-fpm 搭配 nginx 的方案了. PS:doc ...

  2. Kernel Memory 入门系列:文档预处理

    Kernel Memory 入门系列:文档预处理 Embedding为我们提供了问题理解和文档检索的方法,但是面对大量的文档,如果在用于提问的时候再进行文档的Embedding的话,那这个过程是非常耗 ...

  3. 关于Secure Hash Algorithm加密算法

    一.概述 SHA(Secure Hash Algorithm)加密算法是一种广泛应用的密码散列函数,由美国国家安全局(NSA)设计,用于保障数据的安全性和完整性.SHA算法经历了多个版本的更新,目前主 ...

  4. 从零玩转设计模式之建造者模式-jianzaozhemoshi

    title: 从零玩转设计模式之建造者模式 date: 2022-12-08 18:15:30.898 updated: 2022-12-23 15:35:58.428 url: https://ww ...

  5. 劫持 PE 文件:搜索空间缝隙并插入ShellCode

    因近期项目需要弄一款注入型的程序,但多次尝试后发现传统的API都会被安全软件拦截,比如 CreateRemoteThread.SetWindowHookEx.APC.GetThreadContext. ...

  6. openstack云基础架构

    openstack搭建及基本配置 节点servera: 配置好yum后 yum -y update 更新yum仓库 安装openstack yum -y install openstack-packs ...

  7. Cesium中用到的图形技术——Computing the horizon occlusion point

    译者注:本文翻译自Cesium官方博文<Computing the horizon occlusion point>,by KEVIN RING. 你厌倦了地平线剔除吗? 太好了,我也没有 ...

  8. Kmesh内核级流量治理,服务转发性能提升50%+

    本文分享自华为云社区<DTSE Tech Talk | 第49期:Kmesh内核级流量治理,服务转发性能提升50%+!>,作者:华为云社区精选. 数据面时延开销,无法满足应用SLA诉求?内 ...

  9. Linux神器strace的使用方法及实践

    在Linux系统中,strace命令是一个集诊断.调试.统计与一体的工具,可用来追踪调试程序,能够与其他命令搭配使用,接下来就Linux系统调用工具strace的使用方法和实践给大家做个详细介绍,一起 ...

  10. 打破“双十定律”,华为云AI推动超级抗菌药Drug X研发加速

    摘要:学科交叉已经逐渐变成了科技创新的一个主要源泉,成为这个科学时代一个不可替代的研究范式.在科技与技术合力赋能之下,中国科研人创新奋斗再出新成果,人类与病菌的博弈因此有了新武器. 本文分享自华为云社 ...