Validator
当你造好了一道题的数据,感觉有点虚,担心数据不合法(不符合题目的限制条件):上溢、图不连通、不是树……你便需要 validator 来帮助你检查数据是否合法。
即便你非常有自信,也最好用 Validator 检查一下,比较稳妥。所有 Codeforces 上的题目都必须要有 validator,Polygon内建了对 validator 的支持。
使用 Testlib 写 Validator 是很方便的。
请在阅读下文前先阅读通用。(然后就没什么可说的了)
示例¶
以下是100541A - Stock Market的 validator:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include "testlib.h" int main(int argc, char* argv[]) { registerValidation(argc, argv); int testCount = inf.readInt(1, 10, "testCount"); inf.readEoln(); for (int i = 0; i < testCount; i++) { int n = inf.readInt(1, 100, "n"); inf.readSpace(); inf.readInt(1, 1000000, "w"); inf.readEoln(); for (int i = 0; i < n; ++i) { inf.readInt(1, 1000, "p_i"); if (i < n - 1) inf.readSpace(); } inf.readEoln(); } inf.readEof(); } |
真香,基本不会写出 bug。
更多示例可以在GitHub中找到。 Validator 是非常严格的,它需要保证有正确的空格或换行。例如当你读入一个整数时,当前流指针位置为一个空格后接一个整数,Testlib 仍将抛出错误。Warning
本文翻译自Validators with testlib.h - Codeforces。 testlib.h
的 GitHub 存储库为MikeMirzayanov/testlib。
build本页面最近更新:,更新历史
edit发现错误?想一起完善? 在 GitHub 上编辑此页!
people本页面贡献者:
copyright本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供,附加条款亦可能应用