100分求助!!你没看错100分求助!

P1184 高手之在一起

个人觉得是因为您的 $a_i$ 和 $b_i$ 都多读入了 $1$ 个,所以统计答案时答案会多 $1$ 个。
by _XOF_ @ 2023-05-14 17:24:43


@[Lijuncheng1207](/user/612152) 很简单,第一个for循环从i从1开始
by jtshw @ 2023-05-14 17:24:58


@[jtshw](/user/737453) 试过了10分
by lijuncheng_1207 @ 2023-05-14 17:27:48


@[_XOF_](/user/542221) 试过了10分
by lijuncheng_1207 @ 2023-05-14 17:28:00


@[Lijuncheng1207](/user/612152) 将第二个循环的 $i=0$ 改为 $i=1$ 后即可直接输出 $ans$。亲测有效。
by _XOF_ @ 2023-05-14 17:34:06


@[_XOF_](/user/542221) 十分感谢!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
by lijuncheng_1207 @ 2023-05-14 17:37:09


@[Lijuncheng1207](/user/612152) 以样例为例,输入 `n` 和 `m` 之后光标在这个位置: ```text 1 2| WC CLASS WC ``` 首先看第一个循环,其条件是 `i <= n`,共 `n + 1` 次迭代。`getline` 会输入当前行的剩余内容,并把光标移到下一行开头。既然首次迭代(`i == 0`)中光标在第一行末尾,那么令 `a[0]` 为 `""` 并把光标放在第二行开头: ```text 1 2 |WC CLASS WC ``` 接下来的 `n` 次迭代(`i` 的值为 `1` 到 `n`)按期望执行: ```text 1 2 WC |CLASS WC ``` `cnt` 最终的值是 `{{"", 1}, {"WC", 1}}`。 --- 来到第二个循环,条件是 `i <= m`,共 `m + 1` 次迭代。前 `m` 次迭代(`i` 为 `0` 到 `m - 1`)正常输入: ```text 1 2 WC CLASS WC | ``` 因为最后一次迭代(`i == m`)到达文件末尾,所以 `b[m]` 被置空。`cnt` 里刚好有空串,`ans` 由此被多加了 `1`。
by ud2_ @ 2023-05-14 17:39:24


@[Lijuncheng1207](/user/612152) 不可能,除非你最后ans-1没改(我测过)
by jtshw @ 2023-05-14 17:42:19


另外,“把光标移到下一行开头”的正常写法是 `cin.ignore(numeric_limits<std::streamsize>::max(), '\n')`。
by ud2_ @ 2023-05-14 17:45:21


**感谢大家的帮助!!!!!**
by lijuncheng_1207 @ 2023-05-14 17:45:51


| 下一页