Kingdom Roadmap UVA

来源:互联网 发布:linux怎么打开found 编辑:程序博客网 时间:2024/06/10 14:54

很奇怪,思路感觉没问题,实现感觉也没问题,但是就是没过,查了下poj一样的题目,上面也没人通过,将uva上别人之前通过的代码copy进去也没过,难道是数据卡的更严了?先保存下自己的代码,欢迎大神指教:

#include<iostream>#include<vector>#include<string>#include<set>#include<stack>#include<queue>#include<map>#include<algorithm>#include<cmath>#include<iomanip>#include<cstring>#include<sstream>#include<cstdio>#include<deque>#include<functional>using namespace std;vector<int> G[100010];int record[100010];class Solve{public:int n,amount;void dfs(int cur,int pa){for (int i = 0; i < G[cur].size();i++){int v = G[cur][i];if (v != pa){dfs(v,cur);}}if (G[cur].size() == 1)record[amount++] = cur;}void Init(){amount = 0;for (int i = 0; i <= n; i++) G[i].clear();for (int i = 1; i < n; i++){int a, b;cin >> a >> b;G[a].push_back(b);G[b].push_back(a);}}void Deal(){Init();dfs(1, -1);cout << (amount + 1) / 2 << endl;int off = amount / 2;for (int i = 0; i <= (amount-1) / 2; i++){cout << record[i] << " " << record[i + off] << endl;}}};int main(){Solve a;while (cin >> a.n){a.Deal();}return 0;}