首页 > 其他分享 >P2895(未解决)

P2895(未解决)

时间:2023-07-03 11:35:52浏览次数:35  
标签:stone return int S1 && 解决 P2895 include

这是一道略复杂的常规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;
}

标签:stone,return,int,S1,&&,解决,P2895,include
From: https://www.cnblogs.com/gongkai/p/17522314.html

相关文章

  • Vmware虚拟机一打开就蓝屏解决方法
    问题一:打开Vmware虚拟机就蓝屏解决方法1:启用和关闭windows功能(对话框)——>虚拟机平台(选项打对勾,默认没勾选)——>确定后重启——>再进应该就好了。问题二:VMwareWorkstation与Device/CredentialGuard不兼容。在禁用Device/CredentialGuard后,可以运行VMwareWorksta......
  • SQL Server中的NULL值处理:判断与解决方案
    摘要:在SQLServer数据库中,NULL是表示缺少数据或未知值的特殊标记。处理NULL值是SQL开发人员经常遇到的问题之一。本文将介绍SQLServer中判断和处理NULL值的不同方法,以及一些解决方案,帮助您更好地处理数据库中的NULL值情况。文章内容:引言:在数据库开发中,经常会遇到处理......
  • 一秒教你解决苹果手机wifi变灰色
    https://www.douyin.com/note/7242700916091096352一秒解决苹果手机连不上wifi问题,苹果手机突然连不上wifi,重启手机,还原网络设置都试过了,无线wifi还是灰色,教你方法,打开设置-通用-语言与地区,随便换一个语言,等待连接上wifi,再换回中文即可,学会了吗?  更换iphone语言......
  • 新1期视频第14课und异常中断模式的bug以及对应的解决方法
    正在学习新1期第14课und异常模式程序示例的同学,可能会发现014_und_exception_014_004\001的代码存在如下BUG,学员在论坛反馈后,我们已经第一时间解决,下面将以对话的形式完整的呈现这个解决方案。**学员azoxi:**对ARM裸机加强版-第14课und异常模式有打印异常疑惑,以下是我的start.S代......
  • 火山引擎DataLeap数据质量解决方案和最佳实践(二):解决方案
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群DataLeap流批数据质量解决方案产品功能架构火山引擎DataLeap流批数据质量解决方案有4个大的功能:离线数据质量监控:解决批和微批监控场景,支持Hive、ClickHouse、ES等多种数据源,并有字段、唯一性......
  • 火山引擎DataLeap数据质量解决方案和最佳实践(二):解决方案
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群DataLeap流批数据质量解决方案产品功能架构火山引擎DataLeap流批数据质量解决方案有4个大的功能:离线数据质量监控:解决批和微批监控场景,支持Hive、ClickHouse、ES等多种数据源,并......
  • winfrom 中子窗体控件受到父窗体字体大小控制的解决
    举例为winform添加选项卡,在选项卡添加UserControl或者一个Form后,运行却发现窗体没有完全显示,如下图:右侧的三个按钮只显示了1个半,在这个问题上纠结了很长时间,直到不间断的寻找控件的属性,发现了解决方式和问题所在。这个问题在于子窗体的缩放由父窗体的字体控制,只要修改子窗体的......
  • 生产环境docker镜像无法下载如何解决
    有时候镜像在开发测试环境中是可以下载的,但在某些生产环境中是无法访问外网进行镜像的拉取。这时候就只能在测试或者开发环境先保存镜像,然后复制到生产的机器,然后加载到生产本地机器,下面就来介绍下该如何操作。1、下载镜像到本地dockerpullweijishu/nginx将镜像下到本地 2......
  • CarEye 视频平台解决方案
     前言随着4G,5G技术和互联网技术的普及,流媒体应用越来越广发应用到生活中。本文档主要介绍CarEye视频服务器的主要软件硬件构成,功能实现。功能介绍CarEye 媒体服务器主要实现以下基本功能:遵照GB28181/GT1078协议实设备到服务器的信令交互,媒体流上传功能。服务器提供丰富的流媒体......
  • docker启动RabbitMQ以及常见问题解决
    docker启动MQ容器下载docker镜像dockersearchrabbitmqdockerpullrabbitmqdockerrun-d--hostnamemy-rabbit--namerabbit-p15672:15672-p5672:5672rabbitmq:latest启动容器后浏览器无法访问dockerexec-it3b124f0c9712/bin/bashrabbitmq-pluginsenab......