洛谷评测机BUG(应该是)
此问题由洛谷p1746引出(之前出过类似问题没在意)
以下是两个差不多的程序,(只有main函数中的输入不同,第一个程序迷之WA,第二个程序AC)
#include <bits/stdc++.h>
using namespace std;
int qx,qy,zx,zy;
int n,m;
int xx[] = {,,,-,},yy[] = {,-,,,};
char a[][];
queue<int>q;
int tot[][];
int qx,qy,zx,zy;
void gs() {
while(q.empty() == ) {
int x = q.front();
q.pop();
int y = q.front();
q.pop();
for(int k = ; k <= ; k++) {
int x2 = x + xx[k];
int y2 = y + yy[k];
if(a[x2][y2] == && x2 >= && y2 >= && x2 <=n && y2 <= m) {
q.push(x2);
q.push(y2);
tot[x2][y2] = tot[x][y] + ;
a[x2][y2] = ;
}
if(x2 == zx && y2 == zy) {
tot[x2][y2] = tot[x][y] + ;
cout<<tot[x2][y2]<<endl;
while(q.empty() == ){
q.pop();
}
memset(tot,,sizeof(tot));
return ;
}
}
}
cout<<-<<endl;
return ;
}
int main() {
scanf("%d%d",&n,&m);
getchar();
for(int i=; i<=n; i++) {//单个字符输入+getcahr()读入换行符
for(int j=; j<=m; j++) {
scanf("%c",&a[i][j]);//这里改成getchar()也不对
}
getchar();
}
gs();
return ;
}
#include <bits/stdc++.h>
using namespace std;
int qx,qy,zx,zy;
int n;
int xx[] = {,,,-,},yy[] = {,-,,,};
char a[][];
queue<int>q;
int tot[][];
void gs() {
while(q.empty() == ) {
int x = q.front();
q.pop();
int y = q.front();
q.pop();
for(int k = ; k <= ; k++) {
int x2 = x + xx[k];
int y2 = y + yy[k];
if(a[x2][y2] == '' && x2 >= && y2 >= && x2 <=n && y2 <= n) {
q.push(x2);
q.push(y2);
tot[x2][y2] = tot[x][y] + ;
a[x2][y2] = '';
}
if(x2 == zx && y2 == zy) {
tot[x2][y2] = tot[x][y] + ;
cout<<tot[x2][y2];
return ;
}
}
}
}
int main() {
scanf("%d",&n);
getchar();
for(int i=; i<=n; i++) {
scanf("%s", a[i] + );//整个字符串输入
}
scanf("%d%d%d%d",&qx,&qy,&zx,&zy);
q.push(qx);
q.push(qy);
gs();
return ;
}
小结:编译器永远没错,评测机可能有错 别用getchar()
洛谷评测机BUG(应该是)的更多相关文章
- 洛谷 P3684 机棚障碍Hangar Hurdles [CERC2016] 图论
正解: 解题报告: 传送门! 首先不难想到这题主要有两个问题需要解决,一个是预处理出各个点的箱子半径最大值,一个是求ans 然后分别港下QwQ 首先关于预处理要说下昂 预处理有三种方法,分别港下 第一 ...
- 洛谷P3372 【模板】线段树 1
P3372 [模板]线段树 1 153通过 525提交 题目提供者HansBug 标签 难度普及+/提高 提交 讨论 题解 最新讨论 [模板]线段树1(AAAAAAAAA- [模板]线段树1 洛谷 ...
- 洛谷 P3695 CYaRon!语 题解 【模拟】【字符串】
大模拟好啊! 万一远古计算机让我写个解释器还真是得爆零了呢. 题目背景 「千歌です」(我是千歌).「曜です」(我是曜).「ルビィです」(我是露比).「3人合わせて.We are CYaRon! よろし ...
- 洛谷 2216 [HAOI2007]理想的正方形
题目戳这里 一句话题意 给你一个a×b的矩形,求一个n×n的子矩阵,矩阵里面的最大值和最小值之差最小. Solution 这个题目许多大佬都是单调队列,但是我不是很会,只好用了比较傻逼的方法: 首先我 ...
- 【项目】关于TeenCode第二代评测机的技术分析
晚上睡不着觉,仔细研读了洛谷的第四代评测机技术分析后,突然发现自己写的TeenCode评测机竟然有这么多地方可以改进,这不得不让我诞生了实现第二代TeenCode评测机的想法.[第一代评测机挺可怜的, ...
- 洛谷 P1379 八数码难题 Label:判重&&bfs
特别声明:紫书上抄来的代码,详见P198 题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示.空格周围的棋子可以移到空格中.要求解的问题是:给 ...
- 洛谷 P1392 取数
题面 在做这道题前,先要会他的弱化版(实际一模一样,只是愚蠢的洛谷评测级别差了一档(睿智如姬无夜)) ----------------------------------弱化版------------ ...
- BZOJ4071 & 洛谷3644 & UOJ112:[APIO2015]巴邻旁之桥——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4071 https://www.luogu.org/problemnew/show/P3644 ht ...
- 【洛谷】CYJian的水题大赛 解题报告
点此进入比赛 \(T1\):八百标兵奔北坡 这应该是一道较水的送分题吧. 理论上来说,正解应该是DP.但是,.前缀和优化暴力就能过. 放上我比赛时打的暴力代码吧(\(hl666\)大佬说这种做法的均摊 ...
随机推荐
- Linux系统下DHCP服务安装部署和使用详解
一.概述 DHCP :动态主机设置协议(英语:Dynamic Host Configuration Protocol,DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:用于内部网或 ...
- 2018-2019-2 实验二 Java面向对象程序设计
实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承.多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D原则 5.了解设计模式 实验要求 1.没有Linux基础的同学 ...
- Golang入门教程(二)Ubuntu16.04下安装golang(实例:Golang 定时任务管理器)
通过两种方式安装 一.通过apt-get安装1.安装 sudo apt-get install golang 2.设置GOPATH变量 GOPATH是扩展库的目录,Go先搜索标准库目录,然后搜索GOP ...
- vue的计算属性与方法的不同
计算属性 vue的模板里可以使用表达式,但是它的设计初衷是用于简单计算,在模板中放入太多逻辑会让模板过重且难以维护.例如: <div id="example"> {{ ...
- 34 springboot项目之间依赖导致bean 无法加载问题
方式一(OK) 模块A引入模块B ,但是模块B的bean一直注入不进来 原因: A模块的Application是在com.xx.xx包下,那么势必只能扫描到这个包下的bean, B模块的Applica ...
- windows 7 命令修改IP地址
netsh interface ip set address "本地连接" static 172.17.15.97 255.255.255.0 172.17.12.1
- EF提交插入数据catch捕获具体异常方法
try { db.SaveChanges(); } catch (DbEntityValidationException ex) { StringBuilder errors = new String ...
- 简单迷宫算法(递归与非递归C++实现)
假定迷宫如下:1代表墙,0代表道路,起点在(1,1),终点(11,9)(PS:下标从0开始计算). 现在寻求一条路径能从起点到达终点(非最短). 有两种解法:递归与非递归. 递归算法思路: 要用递归, ...
- 自定义Maven Archetype模板
1. 目的 自定义Maven Archetype模板目的为了把自己辛苦搭建的基础项目可以作为模板, 方便以后可以快速的创建类似项目,免去每次搭建的麻烦 2.把基础项目打包生成archetype项目 在 ...
- linux 查看/修改jdk版本
linux 查看/修改jdk版本 配置环境变量vim /etc/profile 编辑profile文件 在底部加入JAVA_HOME=/usr/java/jdk1.8PATH=$JAVA_HOME/b ...