其实是很水的一道bfs题,昨晚比赛的时候没看清题意,漏了一个条件。

 #include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
#include<algorithm>
#include<set>
#include<map>
#include<queue>
#include<stack>
#include<string>
#include<vector>
#define maxn
#define INF 1000000000
using namespace std;
int vist[][];
char str[][];
int dirx[]={-,,,};
int diry[]={,,,-};
int m,n,stx,sty,edx,edy;
int judge(int x,int y)
{
if(x>=&&x<n&&y>=&&y<m)
return ;
return ;
}
int bfs()
{
queue<int> q;
stx--;
sty--;edx--;edy--;
int num=stx*m+sty;
q.push(num);
//vist[stx][sty]--;就改的这个地方,因为起点和终点有可能相同
while(!q.empty())
{
num=q.front();
//printf("%d==\n",num);
q.pop();
int xx=num/m;
int yy=num%m; for(int i=;i<;i++)
{
int newx=xx+dirx[i];
int newy=yy+diry[i];
if(newx==edx&&newy==edy&&vist[newx][newy]==)
return ;
if(judge(newx,newy)&&vist[newx][newy]>)
{
q.push(newx*m+newy);
vist[newx][newy]--;
}
}
}
//printf("==\n");
return ; }
int main()
{
scanf("%d %d",&n,&m);
for(int i=;i<n;i++)
scanf("%s",str[i]);
scanf("%d %d",&stx,&sty);
scanf("%d %d",&edx,&edy);
for(int i=;i<n;i++)
{
for(int j=;j<m;j++)
{
if(str[i][j]=='X')
vist[i][j]=;
else
vist[i][j]=;
}
}
if(bfs())
printf("YES\n");
else
printf("NO\n");
return ;
}

Codeforces Round #301 (Div. 2) B. School Marks的更多相关文章

  1. 贪心 Codeforces Round #301 (Div. 2) B. School Marks

    题目传送门 /* 贪心:首先要注意,y是中位数的要求:先把其他的都设置为1,那么最多有(n-1)/2个比y小的,cnt记录比y小的个数 num1是输出的1的个数,numy是除此之外的数都为y,此时的n ...

  2. Codeforces Round #301 (Div. 2) B. School Marks 构造/贪心

    B. School Marks Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/540/probl ...

  3. DFS/BFS Codeforces Round #301 (Div. 2) C. Ice Cave

    题目传送门 /* 题意:告诉起点终点,踩一次, '.'变成'X',再踩一次,冰块破碎,问是否能使终点冰破碎 DFS:如题解所说,分三种情况:1. 如果两点重合,只要往外走一步再走回来就行了:2. 若两 ...

  4. 贪心 Codeforces Round #301 (Div. 2) A. Combination Lock

    题目传送门 /* 贪心水题:累加到目标数字的距离,两头找取最小值 */ #include <cstdio> #include <iostream> #include <a ...

  5. 「日常训练」School Marks(Codeforces Round 301 Div.2 B)

    题意与分析(CodeForces 540B) 题意大概是这样的,有一个考试鬼才能够随心所欲的控制自己的考试分数,但是有两个限制,第一总分不能超过一个数,不然就会被班里学生群嘲:第二分数的中位数(科目数 ...

  6. 【Codeforces Round #301 (Div. 2) B】 School Marks

    [链接] 我是链接,点我呀:) [题意] 已知k门成绩. 总共有n门成绩. 让你构造剩下的n-k门成绩,使得这n门成绩的中位数>=y,并且这n门成绩的和要小于等于x. n为奇数 [题解] 首先判 ...

  7. Codeforces Round #301 (Div. 2)(A,【模拟】B,【贪心构造】C,【DFS】)

    A. Combination Lock time limit per test:2 seconds memory limit per test:256 megabytes input:standard ...

  8. CodeForces Round #301 Div.2

    今天唯一的成果就是把上次几个人一起开房打的那场cf补一下. A. Combination Lock 此等水题看一眼样例加上那个配图我就明白题意了,可是手抽没有注释掉freopen,WA了一发. #in ...

  9. Codeforces Round #301 (Div. 2)A B C D 水 模拟 bfs 概率dp

    A. Combination Lock time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

随机推荐

  1. js基础之COOKIE

    一.COOKIE的封装函数 function setCookie(name,value,eDate){ var oDate = new Date(); oDate.setDate(oDate.getD ...

  2. poj1274 二分匹配

    今天复习二分匹配,A 了一道模板题. 二分匹配需要理解增广路的寻找.用dfs来更新最大匹配.注意一些点:赋初值:愚蠢地把==写成了= ; 然后match的记值;每个点都要重新走一遍. #include ...

  3. Linux Lab and project latest

    samba : start your samba service netlogon syslog vi /usr/local/samba vi /usr/samba/etc/smb.conf smbc ...

  4. Great writers inspire

    William Shakespeare Beowulf (Anglo-Saxon) Jonathan Swift Stephen Duck William Blake George Elliot Ka ...

  5. java中this的用法?

    2008-07-28 08:10cztx5479 | 分类:JAVA相关 | 浏览4533次 java中this的用法? import java.awt.*; import java.awt.even ...

  6. flash 和 第三方程序交互

    一.flash 端 修改 1.flash cs6  修改脚本 为as3 2.修改 按钮 实例 名 (不是sprite列表中的名字  实例名称 和这个名字 是2个) 3.时间轴上 添加代码 当前选择 A ...

  7. 数组包含字典-根据key排序

    NSArray *array = [NSArray array]; [array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id ...

  8. 如何为Eclipse设置代理

    看图,不解释:

  9. python中的函数调用绑定,静态方法和类方法

    在C++的类中,有两种函数:普通成员函数和静态成员函数,差别是成员函数通过类实例调用,而静态成员函数通过类名调用.本质上,成员函数在调用的时候会默认把this指针作为第一个参数传入,而静态成员函数不需 ...

  10. 让Tomcat支持中文文件名

    --参考链接:http://blog.chinaunix.net/uid-26284395-id-3044132.html 解决问题的核心在于修改Tomcat的配置,在Server.xml文件中添加一 ...