1010acm 有疑问
1010
===
不知道为什么一直超时我心碎了曹操草,有大神给看看么??
#include<cstdlib>
#include<cstdio>
#include<string.h>
#include<cmath>
#include<iostream>
using namespace std;
struct Point
{
int x;
int y;
int destence;
}start_point,end_point;
int size_x,size_y;
/*struct Direction
{
int dir_x;
int dir_y;
}up,left,right,down;
up.dir_x = 0;
up.dir_y = 1;
left.dir_x = -1;
left.dir_y = 0;
right.dir_x = 1;
right.dir_y = 0;
down.dir_x = 0;
down.dir_y = -1;*/
int direction[4][2] = {{0,1},{0,-1},{1,0},{0,1}};// up down left down
char str_map[10][10] = {0};
bool my_find = false;
int my_time;
void DFS(int x,int y,int count)
{
int road_to_go ;
if(my_find == true)
return;
if(x == end_point.x && y == end_point.y && count == my_time)
{
my_find = true;
return;
}
road_to_go = (my_time - count) - (abs(x-end_point.x) + abs(y-end_point.y));
if(road_to_go % 2 ==1 || road_to_go < 0)
{
return;
}
for(int i = 0; i < 4; i++)
{
if(x + direction[i][0] < 0 || x + direction[i][0] > size_x - 1 || y + direction[i][1] < 0 || y + direction[i][1] > size_y -1 )
{
continue;
}
if(str_map[x + direction[i][0]][y + direction[i][1]]!= 'X' && str_map[x + direction[i][0]][y + direction[i][1]]!= 'x')
{
str_map[x+direction[i][0]][y + direction[i][1]] = 'X';
DFS(x + direction[i][0], y + direction[i][1],count+1);
str_map[x+direction[i][0]][y + direction[i][1]] = '.';
}
if(my_find == true)
{
return;
}
}
}
int main()
{
int i,j;
int sum_time = 0;
int wall_count = 0;
while(scanf("%d %d %d",&size_x,&size_y,&my_time)!=EOF)
{
my_find = false;
sum_time = 0;
wall_count = 0;
memset(str_map,0,sizeof(str_map));
if(size_x == 0 && size_y == 0 && my_time == 0)
break;
for(i = 0;i < size_x ;i++)
{
for(j = 0; j < size_y;j++)
{
cin>>str_map[i][j];
if(str_map[i][j] == 'S')
{
start_point.x = i;
start_point.y = j;
str_map[i][j] = 'X';
}
if(str_map[i][j] == 'D')
{
end_point.x = i;
end_point.y = j;
end_point.destence = 0;
}
if(str_map[i][j] == 'X')
wall_count++;
}
//getchar();
}
if(size_x*size_y - wall_count >= my_time)
{
DFS(start_point.x,start_point.y,0);
}
if(my_find == true)
{
cout<<"YES"<<endl;
}
else
{
cout<<"NO"<<endl;
}
}
}
1010acm 有疑问的更多相关文章
- 阶段一:用Handler和Message实现计时效果及其中一些疑问
“阶段一”是指我第一次系统地学习Android开发.这主要是对我的学习过程作个记录. 本来是打算继续做天气预报的优化的,但因为某些原因,我要先把之前做的小应用优化一下.所以今天就插播一下用Handle ...
- sys.dm_os_waiting_tasks 引发的疑问(中)
上一篇我们说了一下sys.dm_exec_requests 和 sys.dm_os_waiting_tasks 在获取并行等待的时候得不同结果,这一篇我们谈论下我的第二个疑问:为什么一个并行计划(4线 ...
- sys.dm_os_waiting_tasks 引发的疑问(上)
很多人在查看SQL语句等待的时候都是通过sys.dm_exec_requests查看,等待类型也是通过wait_type得出,sys.dm_os_waiting_tasks也可以看到session的等 ...
- 关于C#调用非托管动态库方式的性能疑问
最近的项目中,因为一些原因,需要C#调用非托管(这里为C++)的动态库.网上喜闻乐见的方式是采用静态(DllImport)方式进行调用.偶然在园子里看到可以用动态(LoadLibrary,GetPro ...
- 廖雪峰Python教程疑问
1. 字符串的strip()方法 原文: “把一个序列中的空字符串删掉,可以这么写: def not_empty(s): return s and s.strip() list(filter(not_ ...
- (转)对SQLSERVER数据库事务日志的疑问
本文转载自桦仔的博客http://www.cnblogs.com/lyhabc/archive/2013/06/10/3130856.html 对SQLSERVER数据库事务日志的疑问 摸不透SQLS ...
- 增量式PID计算公式4个疑问与理解
一开始见到PID计算公式时总是疑问为什么是那样子?为了理解那几道公式,当时将其未简化前的公式“活生生”地算了一遍,现在想来,这样的演算过程固然有助于理解,但假如一开始就带着对疑问的答案已有一定看法后再 ...
- python魔法函数的一些疑问
看了魔法函数,有一点疑问.1中需要用self.word才能执行,而2直接用self就可以执行.而1中Word继承了int基本类型,但在__new__时并没有什么卵用.当用 Word(“123”)来实例 ...
- 字符串、字符、字节以及bit位小结与疑问
字符串是由一个个字符组成的,每个字符又有一个或多个字节来表示,每个字节又由8个bit位来表示 在C#里 字符串通常由string来声明,字符由char来声明,字节由byte来表示,位由bit来表示,具 ...
- 括号配对nyoj2(疑问)
描述现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=100),表示有N组测试数据.后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长 ...
随机推荐
- Redis的底层数据结构-跳表
跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其它节点的指针,从而达到快速访问节点的目的.具有如下性质: 1.由很多层结构组成: 2.每一层都是一个有序的链表,排列顺序为 ...
- 🎀B站-网页优化插件BewlyBewly
简介 一个开源的B站网页优化浏览器插件,对B站网页进行了调整和优化,页面更具视觉吸引力和用户友好性. 源码 https://github.com/BewlyBewly/BewlyBewly 支持 插件 ...
- js 计算精度问题解决
js 计算精度问题解决 /** * * * @param x 需处理精度的数 * @param n 小数点后第 n 位 * @returns 处理后的数 */ function roundFracti ...
- surging 集成SuperSocket预发布版本2.0
一.概述 周末在家试着扩展SuperSocket,因为之前都是只支持.net framework, 后面出现支持.NET CORE 的SuperSocket 2.0 ,然后集成进来和dotnetty ...
- MySQL 数据库的性能优化方法有哪些?
MySQL 数据库性能优化是提高数据库响应速度和处理能力的重要手段.性能优化可以从多个层面入手,涵盖数据库设计.查询优化.硬件资源优化.配置调整等方面.以下是 MySQL 数据库常见的性能优化方法: ...
- 再谈kettle两种循环之--调用http分页接口循环获取数据
再谈kettle两种循环之 – 调用http分页接口循环获取数据 1.场景介绍: 由于数据量比较大,接口有返回限制,需要用到循环分页获取数据 2.案例适用范围: 循环job可参考,变量运用可参考,调用 ...
- 聊聊AI浏览器
提供AI咨询+AI项目陪跑服务,有需要回复1 大模型一直有个难以解决的问题:系统的知识是过时的,他们难以跟进最新的信息. 基于这个原因,ChatGPT以及DeepSeek都提出了联网功能,只不过效果嘛 ...
- Gnirehtet —— 通过 USB 让手机共享 PC 网络
Gnirehtet 使用教程 什么是 Gnirehtet? Gnirehtet("Tethering" 反写)是 Google 开发的开源工具,用于 通过 USB 共享 PC 网络 ...
- 【已解决】戴尔 Inspiron 5457 和 5557 启动报错:Invalid configuration information - please run SETUP program.
场景 我使用的是戴尔15-5557的笔记本电脑,在某次开机的时候系统提示:Invalid configuration information - please run SETUP program. 虽 ...
- 【HUST】网安|计算机网络|计算机网络自顶向下方法(原书第7版)第三章部分习题答案
参考:英文版的原答案. 答案放gitee了,自取. 3-P18. 3.4.4 节我们学习的一般性 SR 协议中,只要报文可用(如果报文在窗口中) ,发送方就会不等待确认而传输报文.假设现在我们要求一个 ...