北京大学程序设计实习2025春魔兽世界大作业
- 关于dragon士气取小数点后两位的问题
这个我自己也没有研究明白他是一个什么机制,但是将士气用double类型替换float类型后是可以ac的。(详见代码中实现)
*学完ics相关内容后回来补一下:通俗的讲,编译器的四舍五入源于其理解该数“离谁更近”。一些情况下,float和double类型在数据储存时由于内存管理方式的差异,会导致其对.5数据的四舍五入出现不一致的问题。
*归结于这个题本身,可能是由于测试数据生成时使用的运行环境/数据类型与使用double类型并在openjudge上运行时结果不一致,导致使用double类型时无法ac。可以尝试不同的浮点数据类型。
-
sword生成时即有可能攻击力为0,要在生成时进行检验
-
魔兽世界终极版测试数据量较大,如何快速发现wrong answer的点?
首先,在代码main函数开头添加以下片段将输出重定向到文件中(记得include fstream)
streambuf *orig_buf = std::cout.rdbuf();
ofstream out("output.txt");
if (out){
std::cout.rdbuf(out.rdbuf());
}接着便可以通过文本比对网站(推荐这个网站)来快速查看标准输出与你的输出的区别