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的长 ...
随机推荐
- 《基于改进Wallace树的Posit乘法单元优化》(一)
原文 文章通过增加特定的计数器.重新设计部分积求和阶段计数器布局 以及改进最终求和阶段使用的加法器,提出一种名为3L-Wallace树的改进Wallace树算法,有效减少了部分积求和的阶段数, 从而降 ...
- 【Linux】Linux内核模块开发
Linux内核模块开发 零.关于 1.概述 最近在学习Linux相关的东西,学习了U-Boot的编译,Linux的编译,能够在开发板上运行自己编译的U-Boot和Linux了,那么接下来就是在自己编译 ...
- 1K star!这个开源项目让短信集成简单到离谱,开发效率直接翻倍!
嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 "让简单的事情回归简单的本质" -- SMS4J 项目宣言 SMS4J ...
- Spring 基于注解的AOP面向切面编程
Spring 基于注解的AOP面向切面编程 源码 代码实现 pom.xml <?xml version="1.0" encoding="UTF-8"?&g ...
- MySQL之"数据库中没有就创建,有就修改"ON DUPLICATE KEY UPDATE
一.场景 当你想存入一条数据到扩展表中(主表下附表),但这个扩展表并非一定会创建,就会让其工程逻辑复杂化 (也就是说:有可能创建主表数据的同时不会创建扩展表数据,这样就会照成你想修改的时候,扩展表本身 ...
- Go 层级菜单树转 json 处理
本篇是一个补充知识点, 目的是为了下篇的后台管理系统中, 菜单权限的接口进行铺垫一下. 同时也是做个笔记, 因为在很多地方都会用这种 "树结构" 来实现很多权限, 层级, 菜单的处 ...
- vue3适配移动端的登录实现
<script lang="ts" setup> import { ref } from 'vue' const PHONE_NUMBER_REGEX = /^1[0- ...
- TEA密码与逆向工程
前置信息 TEA系列概述:TEA算法是一种分组密码算法,由剑桥大学计算机实验室的David Wheeler和Roger Needham于1994年发明.它使用64位的明文分组和128位的密钥进行加 ...
- ODOO路由里面的auth="user" 的使用
一.controller介绍:Controller层在odoo里面可以认为是控制器,根据url地址来控制后端的业务和前端的内容展示,我们一般偏向于叫路由控制, 它相当于内网和外网之间的防火墙,外网的请 ...
- 论文解读:Locating and Editing Factual Associations in GPT(ROME)
本文发表在人工智能顶会NeurIPS上(原文链接),研究了GPT(Generative Pre-trained Transformer)中事实关联的存储和回忆,发现这些关联与局部化.可直接编辑的计 ...