众所周知,rand生成的随机数最大值RAND_MAX是 library-dependent 的,在 Windows(MinGW) 下是 32767,因此跑不出比较大的随机数。
作为一个mac用户,感受不到这个区别,所以其实rand+freopen经常用的。
如果是window系统的话,建议使用mt19937.
造数据步骤
需要的东西有三样:
- 数据生成器
- 脚本
- 标称
如果用python的话,就比较方便。先搞一个python数据生成器。
import random
print(random.ranint(1, 1000))
然后是标称
写完标称就需要先编译。图中的work就是编译后的
接着是脚本
#!/bin/bash
for ((i=1;i<=2;i++));
do
python3 gen.py > $i.in
./work <$i.in >$i.out
done
其中用python去生成数据,然后用work来输出。
如果说已经有数据,那么直接把python3 生成数据给注释掉就行了。
最后在终端跑一下就行了
我第一行表示切换到当前文件夹里
cd /Users/i/Downloads/xxx
chmod +x gen.sh
./gen.sh
最后
注意的是,数据一定要拉满,且手动加几组特殊的数据。然后交题是记得加assert,防止数据范围出问题