QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#820550#9713. Kill the treeLoxilanteWA 115ms36300kbC++201.5kb2024-12-18 21:48:122024-12-18 21:48:13

Judging History

你现在查看的是最新测评结果

  • [2024-12-18 21:48:13]
  • 评测
  • 测评结果:WA
  • 用时:115ms
  • 内存:36300kb
  • [2024-12-18 21:48:12]
  • 提交

answer

#include <bits/stdc++.h>
#define rep(i, l, r) for(int i = l; i < r; i++)
#define hrp(i, l, r) for(int i = l; i <= r; i++)
#define rev(i, r, l) for(int i = r; i >= l; i--)
#define int ll
using namespace std;
typedef long long ll;
template<typename tn = int> tn next(void) { tn k; cin>>k; return k; }
#ifndef LOCAL
#define D(...) 0
#define I(...) 0
#endif
const int U = 7e5;
int cen[U], mxs[U], siz[U], fa[U];
vector<int> edge[U];
bool chkmin(int&a, int b) { return a > b ? a = b, 1 : 0; }
void dfs(int e, int f)
{
    siz[e] = 1; cen[e] = e; fa[e] = f;

    for(auto y: edge[e]) if (y != f) dfs(y, e), mxs[e] = max(mxs[e], siz[y]), siz[e] += siz[y];

    for(auto y: edge[e]) if (y != f)
    {
        int now = cen[y];
        while(now != e)
        {
            if (max(mxs[now], siz[e]-siz[now]) <= siz[e]/2) { cen[e] = now; break; }
            else now = fa[now];
        }
    }
}
signed main(void)
{
    #ifdef LOCAL
//	freopen("C:\\Users\\Loxil\\Desktop\\IN.txt", "r", stdin);
//	freopen("C:\\Users\\Loxil\\Desktop\\OUT.txt", "w", stdout);
    #endif
    
    ios::sync_with_stdio(false);
    cin.tie(0);
    
    int n;
    cin>>n;
    rep(i, 1, n) { int f, t; cin>>f>>t; edge[f].push_back(t); edge[t].push_back(f); }

    dfs(1, 0);

    hrp(i, 1, n)
    {
        cout<<cen[i];
        if (fa[cen[i]] && max(mxs[fa[cen[i]]], siz[i]-siz[fa[cen[i]]]) <= siz[i]/2) cout<<' '<<cen[fa[i]];
        cout<<endl;
    }
    
    return 0;
}
/*

 */

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 115ms
memory: 36300kb

input:

200000
42924 18271
60536 154257
107175 95680
196335 71607
158051 155259
110869 30974
143595 43516
4228 138046
26249 183847
123888 199873
15009 25362
166527 175160
15257 67159
124779 199363
148904 54047
5988 18123
58281 40739
44562 143880
72819 132492
137782 29662
130741 78276
55073 93292
82700 18328...

output:

134385 0
143670 45886
126220 106649
108393 44121
95313 5226
116080 147311
141180
147983
7428 74120
161963
3879
178499
162544 171549
144413
127262
188325 133093
171802
43558
28179
125217 140604
186651
176397 45633
26425
26982 3745
30063
128965
148036 19661
141733
115691
3491
8560 36057
195673 12536
1...

result:

wrong answer 1st numbers differ - expected: '1', found: '134385'