此问题由洛谷p1746引出(之前出过类似问题没在意)

传送门

以下是两个差不多的程序,(只有main函数中的输入不同,第一个程序迷之WA,第二个程序AC)

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int qx,qy,zx,zy;
  4. int n,m;
  5. int xx[] = {,,,-,},yy[] = {,-,,,};
  6. char a[][];
  7. queue<int>q;
  8. int tot[][];
  9. int qx,qy,zx,zy;
  10. void gs() {
  11. while(q.empty() == ) {
  12. int x = q.front();
  13. q.pop();
  14. int y = q.front();
  15. q.pop();
  16. for(int k = ; k <= ; k++) {
  17. int x2 = x + xx[k];
  18. int y2 = y + yy[k];
  19. if(a[x2][y2] == && x2 >= && y2 >= && x2 <=n && y2 <= m) {
  20. q.push(x2);
  21. q.push(y2);
  22. tot[x2][y2] = tot[x][y] + ;
  23. a[x2][y2] = ;
  24. }
  25. if(x2 == zx && y2 == zy) {
  26. tot[x2][y2] = tot[x][y] + ;
  27. cout<<tot[x2][y2]<<endl;
  28. while(q.empty() == ){
  29. q.pop();
  30. }
  31. memset(tot,,sizeof(tot));
  32. return ;
  33. }
  34. }
  35. }
  36. cout<<-<<endl;
  37. return ;
  38. }
  39. int main() {
  40. scanf("%d%d",&n,&m);
  41. getchar();
  42. for(int i=; i<=n; i++) {//单个字符输入+getcahr()读入换行符
  43. for(int j=; j<=m; j++) {
  44. scanf("%c",&a[i][j]);//这里改成getchar()也不对
  45. }
  46. getchar();
  47. }
  48. gs();
  49. return ;
  50. }
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int qx,qy,zx,zy;
  4. int n;
  5. int xx[] = {,,,-,},yy[] = {,-,,,};
  6. char a[][];
  7. queue<int>q;
  8. int tot[][];
  9. void gs() {
  10. while(q.empty() == ) {
  11. int x = q.front();
  12. q.pop();
  13. int y = q.front();
  14. q.pop();
  15. for(int k = ; k <= ; k++) {
  16. int x2 = x + xx[k];
  17. int y2 = y + yy[k];
  18. if(a[x2][y2] == '' && x2 >= && y2 >= && x2 <=n && y2 <= n) {
  19. q.push(x2);
  20. q.push(y2);
  21. tot[x2][y2] = tot[x][y] + ;
  22. a[x2][y2] = '';
  23. }
  24. if(x2 == zx && y2 == zy) {
  25. tot[x2][y2] = tot[x][y] + ;
  26. cout<<tot[x2][y2];
  27. return ;
  28. }
  29. }
  30. }
  31. }
  32. int main() {
  33. scanf("%d",&n);
  34. getchar();
  35. for(int i=; i<=n; i++) {
  36. scanf("%s", a[i] + );//整个字符串输入
  37. }
  38. scanf("%d%d%d%d",&qx,&qy,&zx,&zy);
  39. q.push(qx);
  40. q.push(qy);
  41. gs();
  42. return ;
  43. }

来自dalao的发言

小结:编译器永远没错,评测机可能有错  别用getchar()

洛谷评测机BUG(应该是)的更多相关文章

  1. 洛谷 P3684 机棚障碍Hangar Hurdles [CERC2016] 图论

    正解: 解题报告: 传送门! 首先不难想到这题主要有两个问题需要解决,一个是预处理出各个点的箱子半径最大值,一个是求ans 然后分别港下QwQ 首先关于预处理要说下昂 预处理有三种方法,分别港下 第一 ...

  2. 洛谷P3372 【模板】线段树 1

    P3372 [模板]线段树 1 153通过 525提交 题目提供者HansBug 标签 难度普及+/提高 提交  讨论  题解 最新讨论 [模板]线段树1(AAAAAAAAA- [模板]线段树1 洛谷 ...

  3. 洛谷 P3695 CYaRon!语 题解 【模拟】【字符串】

    大模拟好啊! 万一远古计算机让我写个解释器还真是得爆零了呢. 题目背景 「千歌です」(我是千歌).「曜です」(我是曜).「ルビィです」(我是露比).「3人合わせて.We are CYaRon! よろし ...

  4. 洛谷 2216 [HAOI2007]理想的正方形

    题目戳这里 一句话题意 给你一个a×b的矩形,求一个n×n的子矩阵,矩阵里面的最大值和最小值之差最小. Solution 这个题目许多大佬都是单调队列,但是我不是很会,只好用了比较傻逼的方法: 首先我 ...

  5. 【项目】关于TeenCode第二代评测机的技术分析

    晚上睡不着觉,仔细研读了洛谷的第四代评测机技术分析后,突然发现自己写的TeenCode评测机竟然有这么多地方可以改进,这不得不让我诞生了实现第二代TeenCode评测机的想法.[第一代评测机挺可怜的, ...

  6. 洛谷 P1379 八数码难题 Label:判重&&bfs

    特别声明:紫书上抄来的代码,详见P198 题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示.空格周围的棋子可以移到空格中.要求解的问题是:给 ...

  7. 洛谷 P1392 取数

    题面 在做这道题前,先要会他的弱化版(实际一模一样,只是愚蠢的洛谷评测级别差了一档(睿智如姬无夜)) ----------------------------------弱化版------------ ...

  8. BZOJ4071 & 洛谷3644 & UOJ112:[APIO2015]巴邻旁之桥——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4071 https://www.luogu.org/problemnew/show/P3644 ht ...

  9. 【洛谷】CYJian的水题大赛 解题报告

    点此进入比赛 \(T1\):八百标兵奔北坡 这应该是一道较水的送分题吧. 理论上来说,正解应该是DP.但是,.前缀和优化暴力就能过. 放上我比赛时打的暴力代码吧(\(hl666\)大佬说这种做法的均摊 ...

随机推荐

  1. python模拟页面调度LRU算法

    所谓LRU算法,是指在发生缺页并且没有空闲主存块时,把最近最少使用的页面换出主存块,腾出地方来调入新页面. 问题描述:一进程获得n个主存块的使用权,对于给定的进程访问页面次序,问当采用LRU算法时,输 ...

  2. 2018-2019 20165232 Exp5 MSF基础应用

    2018-2019 20165232 Exp5 MSF基础应用 一.原理与实践说明 1.实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 一个 ...

  3. 编写高质量的Python代码系列(六)之内置模块

    Python预装了许多写程序时会用到的重要模块.这些标准软件包与通常意义上的Python语言联系得非常精密,我们可以将其当成语言规范的一部分.本节将会讲解基本的内置模块. 第四十二条:用functoo ...

  4. [面试] Java GC (未整理完)

    Java GC简介 什么是 GC ? Java程序不用像C++程序在程序中自行处理内存的回收释放.这是因为Java在JVM虚拟机上增加了垃圾回收(GC)机制,用以在合适的时间触发垃圾回收. 你都了解哪 ...

  5. uCos-II中任务的同步与通信

    任务的同步与通信 任务间的同步 在多任务合作工作过程中,操作系统要解决两个问题: 各任务间应该具有一种互斥关系,即对某些共享资源,如果一个任务正在使用,则其他任务只能等待,等到该任务释放资源后,等待任 ...

  6. CSS white-space属性详解

    概述 CSS的white-space属性用于指定如何处理容器中的空白字符,例如:空格( ).换行(\n).缩进(\t)等. white-space出自CSS1,适用于块状元素,具有继承性,支持IE 5 ...

  7. 最短路径(Dijkstra算法)

    算法局限性:边的权值不能为负. 需要两个辅助数组dist[],path[],分别记录起点到各点的最短距离和最短路径 算法步骤: 1.根据起点v0初始化dist[]和path[]数组. 2.在剩下的点中 ...

  8. c\c++里struct字节对齐规则

    规则一.: 每个成员变量在其结构体内的偏移量都是成员变量类型的大小的倍数.   规则二: 如果有嵌套结构体,那么内嵌结构体的第一个成员变量在外结构体中的偏移量,是内嵌结构体中那个数据类型大小最大的成员 ...

  9. Mac终端命令自动补全

    在这里我们首先说一下mac终端执行命令的时候,不会像在windows系统中安装的linux一样支持自动补全,需要自己去调试 步骤如下: (1)打开终端输入nano .inputrc(这里一定要注意na ...

  10. [经验交流] 试用 grafana 报警功能

    1. grafana 概述 grafana 是一款优秀的数据展示工具,几乎是各类时序数据库的前端标配系统.grafana 在V4版本中已经加入了报警功能. 2. influxdb 概述 influxd ...