全WA求助,为啥样例正确,测试数据输入后输出不了呢!

P1563 [NOIP2016 提高组] 玩具谜题

两个错。第一:你下标搞混了....你这么写的话应该在读入结构体 a 时把下标改为 [0,n)。第二:你的第三个 else if 内的判断条件写错了,应该是“else if(a[tmp].code==1 && x==1)”。 用可以不用 else if 写,但是你的判断条件写错了,所以不用 else if 的话你连样例都过不去
by WYZ20030051 @ 2023-10-08 08:42:02


[给你改完之后的提交记录](https://www.luogu.com.cn/record/128222157)
by WYZ20030051 @ 2023-10-08 08:43:17


@[WYZ20030051](/user/526895) 非常感谢大佬orz!!!但是我改正了判断条件和结构体读入后把else去掉是55分,还是不明白为什么())
by 77Glorious @ 2023-10-08 09:33:39


@[Vanxia1266](/user/956316) 如果你想用 if 写的话你应该在每个 if 语句中加上 continue,因为你每个 if 语句执行的操作都是对 tmp 进行了修改,但是你的 if 语句却又用到了 tmp 这个变量。所以就会导致这样一种情况:比如说你的第一个 if 语句成立了,然后 tmp 的就可能会被更新另外一个值,但是因为你执行了上边的 if 语句后你并没有选择进行下一次循环,而是继续往下找还有没有其他的 if 语句成立。这时由于你的 tmp 值被修改了,很可能它被修改后又可以使得下边的几个 if 语句也成立,从而使你的 tmp 的值被修改了多次,这时候就不一定能够得到正确答案了。所以你可以用 if 语句加上 continue 操作,或者用 else if 语句
by WYZ20030051 @ 2023-10-08 09:52:55


@[WYZ20030051](/user/526895) 明白明白!!!再次感谢~
by 77Glorious @ 2023-10-08 10:00:46


|