random生成一顆樹
用了那個啥prufer還啥的序列的啥的東西,然後這是用在generator上的之類的,最後如果要改成一般的話就改main前面幾行就好了,大概吧。
#include <bits/stdc++.h> using namespace std; int n; vector<int> t; set<int> s; multiset<int> tt; signed main(int argc, char* argv[]) { registerGen(argc, argv, 1); int n = atoi(argv[1]); for (int i = 1; i <= n - 2; ++i) t.push_back(rand() % n + 1); for (int i = 1; i <= n; ++i) s.insert(i); for (auto i:t) cout << i << " "; cout << endl; for (auto i:t) { if (s.find(i) != s.end()) s.erase(s.find(i)); tt.insert(i); } for (auto i:t) { auto it = s.begin(); cout << *it << " " << i << endl; s.erase(it); tt.erase(tt.find(i)); if (tt.find(i) == tt.end()) s.insert(i); } cout << *s.begin() << " " << *s.rbegin() << endl; }
留言
張貼留言