KH_对拍写法
python 的随机数生成器写法
基础常见语法
-
import random随机库 -
random.randint(a, b): 生成一个 范围内的整数(包含 和 )。 -
random.choice(seq): 从列表或字符串中随机选择一个元素。 -
random.uniform(a, b): 生成一个 范围内的浮点数。 -
示例代码
1 | import random |
windows系统下对拍控制器的 python 版本写法
基础语法
-
import os执行系统操作 -
import sys -
import time -
os.system("python shuju.py > data.in")os.让电脑在命令行(CMD)里执行括号里的命令 -
>(重定向): 这是操作系统命令的核心。它的意思是:不要把 print 的结果输出到屏幕上,而是全部写入到 data.in 这个文件里。 -
fc /W wa.out std.outfc == flie compare/W指不要管空格和换行符 -
如果两个文件完全一样会返回0,所以直接写!=0
-
print(f"test case : {cnt} ... ",end="")这里的f是指你可以用花括号引用变量 -
with open("data.in","r") as f:意思是以只读的形式打开data.in,把里面的变量吐给f -
print(f.read())打印里面的东西 -
SPJchecker:需要写
if os.system(check_exe) != 0: -
标准程序:没有返回检查
1 | import os |
Linux系统下对拍控制器的 python 版本写法
- 有几处需要修改的地方,cpp在这方面同理,本质上都是调用cmd来进行操作
- 文件名:
./wap同文件夹下 - 对比器
diff -w wa.out std.out > /dev/null
1 | import os |
windows系统下对拍控制器的 bat 版本写法
@echo off:关闭命令显示。g++ ... -O2 -std=c++14:编译程序。generator.exe > data.in:运行数据生成器,将输出重定向到 data.in。if errorlevel 1:如果文件不同(不同的时候 fc 返回非零),则找到了错误。
1 | @echo off |
随机数生成器的cpp写法
-
mt19937 rng(seed);初始化引擎 -
uniform_int_distribution<int> dist(1, 100); -
高级随机数
1 |
|
- 一般随机数
1 |
|
有SPJ的checker cpp:纯checker没有控制器
1 |
|
cpp版本对拍控制器:劫持输出流(包括生成器都在一个文件里)
- 可以全部复制粘贴输出流
- 可以写SPJ
1 |
|
cpp版本对拍控制器(只有语法区别)
system("gen.exe > data.in")跟py里面的完全一样,只有语法区别
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 ZuesHans's little bag!









