voidgenArray(){ int n = rnd(1, 100000); cout << n << "\n"; // 生成随机数组 auto a = rndArray(n, 1, 1000000); for (int x : a) { cout << x << " "; } cout << "\n"; }
5.2 图生成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
voidgenTree(){ int n = rnd(2, 100000); cout << n << "\n"; // 生成随机树 vector<pair<int,int>> edges; for (int i = 2; i <= n; i++) { int p = rnd(1, i-1); edges.emplace_back(p, i); } shuffle(edges.begin(), edges.end(), rng); for (auto [u, v] : edges) { cout << u << " " << v << "\n"; } }
6. 特殊数据生成
6.1 边界情况
1 2 3 4 5 6 7 8 9
voidgenEdgeCases(){ // 最大数据 int n = 100000; cout << n << "\n"; for (int i = 0; i < n; i++) { cout << 1000000000 << " "; } cout << "\n"; }
6.2 退化情况
1 2 3 4 5 6 7 8
voidgenDegenerateCase(){ // 生成链状树 int n = 100000; cout << n << "\n"; for (int i = 2; i <= n; i++) { cout << i-1 << " " << i << "\n"; } }