9-25考试第三题解题报告(还是写了指针翻译神马的都是浮云感觉好久不说话连话都不会说了233333333QVO)

type
        link=^pnode;
        pnode=record
                w:longint;
                next:link;
        end;

        var
                a,root:array[0..1122] of longint;
                g:array[0..1100,0..1100] of longint;
                hash:array[0..1122] of boolean;
                list:array[0..1122] of link;
                n,min:longint;

        procedure init;
        begin
                assign(input,‘badnews.in‘);
                assign(output,‘badnew.out‘);
                reset(input);
                rewrite(output);
        end;

        procedure terminate;
        begin
                close(input);
                close(output);
                halt;
        end;

        procedure qsort(s,t:longint);
        var
                i,j,x,m:longint;
        begin
                m:=(s+t)>>1;
                x:=a[m];
                a[m]:=a[s];
                a[s]:=x;
                i:=s;
                j:=t;
                repeat
                        while (i<j) and (x>a[j]) do dec(j);
                        if i<j then begin a[i]:=a[j]; inc(i); end;
                        while (i<j) and (x<a[i]) do inc(i);
                        if i<j then begin a[j]:=a[i]; dec(j); end;
                until i=j;
                a[i]:=x;
                inc(i);
                dec(j);
                if i<t then qsort(i,t);
                if s<j then qsort(s,j);
        end;

        function dfs(i:longint):longint;
        var
                j,tot:longint;
                p,q:link;
                pd:boolean;
        begin
                pd:=true;
                p:=nil;
                for j:=1 to g[i][0] do
                begin
                        if not hash[g[i][j]]  then
                        begin
                                pd:=false;
                                hash[g[i][j]]:=true;
                                new(q);
                                q^.w:=dfs(g[i][j])+1;
                                q^.next:=p;
                                p:=q;
                        end;
                end;
                if pd then exit(1);
                tot:=0;
                while p<>nil do
                begin
                        inc(tot);
                        a[tot]:=p^.w;
                        p:=p^.next;
                end;
                qsort(1,tot);

                for j:=2 to tot do inc(a[j],j-1);
                dfs:=0;
                for j:=1 to tot do if a[j]>dfs then dfs:=a[j];
        end;

        procedure main;
        var
                i,x,min:longint;
        begin
                fillchar(list,sizeof(list),0);
                readln(n);
                for i:=2 to n do
                begin
                        readln(x);
                        inc(g[i][0]);
                        g[i][g[i][0]]:=x;
                        inc(g[x][0]);
                        g[x][g[x][0]]:=i;
                end;
                for i:=1 to n do
                begin
                        fillchar(hash,sizeof(hash),0);
                        hash[i]:=true;
                        root[i]:=dfs(i);
                end;

                min:=10000;
                for i:=1 to n do
                begin
                        if root[i]<min then min:=root[i];
                end;
                writeln(min);
                a[0]:=0;
                for i:=1 to n do
                begin
                        if root[i]=min then
                        begin
                                inc(a[0]);
                                a[a[0]]:=i;
                        end;
                end;

                for i:=1 to a[0]-1 do write(a[i],‘ ‘);
                writeln(a[a[0]]);
        end;

        begin
                init;
                main;
                terminate;
        end.

喜欢就收藏一下,vic私人qq:1064864324,加我一起讨论问题,一起进步^-^

时间: 2024-10-12 22:47:25

9-25考试第三题解题报告(还是写了指针翻译神马的都是浮云感觉好久不说话连话都不会说了233333333QVO)的相关文章

圆锥曲线:椭圆小题解题报告

圆锥曲线:椭圆小题解题报告 注意事项: 由于本人水平有限,部分题目解题方法可能非最优解,如有更好方法欢迎在评论区指正. 部分题目讲解可能过于口语化,导致并不符合官方(人教版教材)的要求,请各位在考试中不要学习,使用正确的,符合要求的用语. 本文中可能存在错别字,望发现者在评论区指正. 本篇博客是为记录本人在完成学校作业的过程中遇到的问题,同时给部分同学作为解题参考用. 本篇博客中绘制图像的工具是geogebra. 1~10题: 1 题目: 已知F~1~,F~2~是椭圆\(x^2/4+y^2/3=

08年acm区域赛北京赛区 部分题解题报告

08年区域赛北京赛区 http://poj.org/searchproblem?field=source&key=Beijing+2008 POJ 3921 Destroying the bus stations 题目还是比较难的,当时的榜似乎只有4/25的通过/提交,其实题目数据很水.学长转换模型写了网络流求最小割,可以AC,不过自己造了个数据推翻了正确性.我写了个很挫的bfs套bfs,外层是最小的删除点数,内层是求最短路,数据很水可以AC.但比较蛋疼的在于bfs耗内存,而且队列中的点数是阶乘

2016.8.27一套简单的题解题报告

一套不错的题,需要相关资料的联系我咯 考试分析: 1.  由于题目的名字加上第一道题没读完时我以为是我最不擅长的treeDP(其实不得不说,树和图上的题我真的是不想写,一般都写不对,上课太不认真,这个弱点要加强训练),我直接跳到了最后一道题,明知考3h还用了30min去分析,不过还是感谢,这30min救了我两道题出来: 这套题的确还是比较简单,后两道题只要认真分析数据都不会有问题,也许是因为暑假切了贪心和递推,我对分析数据比较在行,第三题切完之后还有2h,不过没写高精的我有点慌,打算最后留一点时

Codeforces Round #256 (Div. 2/A)/Codeforces448A_Rewards(水题)解题报告

对于这道水题本人觉得应该应用贪心算法来解这道题: 下面就贴出本人的代码吧: 1 #include<cstdio> 2 #include<iostream> 3 using namespace std; 4 5 int a[3],b[3]; 6 7 int main(void) 8 { 9 int n; 10 int need = 0; 11 int sum1 = 0,sum2 = 0; 12 for(int i=1;i<=3;++i){ 13 scanf("%d&q

bzoj 2752 9.20考试第三题 高速公路(road)题解

2752: [HAOI2012]高速公路(road) Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 1545  Solved: 593[Submit][Status][Discuss] Description Y901高速公路是一条重要的交通纽带,政府部门建设初期的投入以及使用期间的养护费用都不低,因此政府在这条高速公路上设立了许多收费站.Y901高速公路是一条由N-1段路以及N个收费站组成的东西向的链,我们按照由西向东的顺序将收费站依次编号为1

CQOI2015 后3题解题报告

这个嘛= =,CQOI我只做了后面3题(前面两题老师还没考就还不敢写= =)说一下被虐报告吧= = T3:[CQOI2015]任务查询系统 描述:戳我~~~ 这道题首先很明显是道裸的数据结构题啦.首先他要求在线,那么按顺序建个函数式线段树就行啦 自己太弱调了好久= = CODE: 1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<algorithm> 5 #inclu

CodeForces 612C (STL_A题)解题报告

题目链接:http://codeforces.com/problemset/problem/612/C -------------------------------------------------------------------------------- 题意:有四种括号,按一定顺序出现,问能否完成括号的匹配,如果不能完成,最少更改几个括号能够完成括号匹配.(注意,左括号只能更换为左括号.同理右括号) 思路:本题具有这样的特征,在每次遇到括号的时候,如果不能完成括号的匹配,需要将新遇到

【算法学习笔记】29.规律题 解题报告 SJTU_OJ 1101 SuperXOR

1101. SuperXOR Description Pangzi recently realized that bitwise XOR operation is just an addition without carries. For example, when computing (1001)_2 XOR (1101)_2, you write down: 1001 + 1101 ------- 0100 You see, everything is like an addition, e

UVA 10815 (STL_C题)解题报告

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1756 -----------------------------------------------------------------------------------------------------------------------------------------