造数据?拿脚造!
在一切的一切开始之前
优质的随机数?rand()
1 |
|
简单一点?
1 |
|
需要负数?
推出我们的梅森旋转引擎
1 | mt19937_64 egn(time(0)); |
打乱序列?
1 | int a[1024]; |
高质量的->
1 |
|
在一切开始之前
脚本读出?
造数据的时候可能需要通过命令行脚本.bat
如
1 | DataMaker.exe num1 num2 > 1.in |
这时候我们需要将main()
1 | int main(){ |
更改为
1 | int main(int argc,char* argv[]){ |
文件输入输出?
1 |
|
打开类型
常量 | 含义 |
---|---|
ios_base::in |
打开文件,读取 |
ios_base::out |
打开文件,写入 |
ios_base::ate |
打开文件,移到文件尾 |
ios_base::app |
追加到文件尾 |
ios_base::trunc |
如果文件存在,则截断文件 |
ios_base::binary |
二进制文件 |
上面的fout.open()
其实是有三个参数的,第一个是文件的路径,第二个是打开文件的类型,第三个是权限。如果不写的话,会采用默认参数,就是ios_base::out|ios_base::trunc
;
开始之前
我们给出一些常用的rand
方式
1 | mt19937_64 engll(chrono::steady_clock::now().time_since_epoch().count()); |
好戏开场
造一棵树
普通树(链/菊花)
$\textbf{Code}$ 代码如下
1 | //tree.cpp |
$\textbf{Require}$ 你需要喂给我:
1 | tree.exe N T F |
蒲公英
造两棵树,一个是链,另一个是菊花
把链的端点和菊花的花心连起来
$\textbf{Code}$ 代码如下
1 | //Dandelion.cpp |
$\textbf{Require}$ 你需要喂给我:
1 | Dandelion.exe N R F |