当前位置:网站首页>Experience of an acmer

Experience of an acmer

2022-06-30 09:24:00 Young white horse

 

Hard training. I'm going to talk about it a little bit at the end . Mainly speaking of the latter : What is effective training ?

        I want to talk about my understanding .
        quite a lot ACMer At the beginning , They were told : Do more questions , Do a 500 More than one way is better . Actually , This is neither a sufficient condition 、 Nor is it a necessary condition .

        I think generally , For the students in our ordinary schools , There will not be a big gap in abilities in all aspects , under these circumstances , The method of training and learning is particularly important .

        Actually ,500 The question is just a sign , And it just means that you do ACM-ICPC Have a certain time ,

        What is the purpose of our training ? I think there are four points
       1、 Improve the programming ability
       2、 Learning algorithms
,( read , Reading papers , Including doing some topic verification )
       3、 Be prepared for the challenges that will come ( Familiar with the question type , Adjustment mentality )
       4、 Enlighten the mind .

        Here are four purposes , From the perspective of training , The importance decreases gradually ; Why? ?
        Because the front factors are the foundation of the back . But the purpose behind it , The harder it is to achieve . I think before 3 I can guarantee you ac Drop the questions you can do , Even if the problem is never done , It's fine too ac Drop the moderately difficult questions .

         Questions that require a certain degree of difficulty in thinking , It should be based on the former three and belong to the later stage of training , The medium term can only be adjusted occasionally . Of course , My mind is so rotten , I have no say in this , You can despise me .

 

        Here I would like to mainly talk about the following 2 spot .

        For algorithms , I find , Many weak schools like ours ACMer The contestants did not focus on learning good algorithms .
        The following points , Maybe they are all old-fashioned , But I want to 035 Compare my own example to illustrate .

       <1> Algorithm learning is ACM An aspect of the competition to be promoted or promoted  
        Remember passing by someone blog, It says that he met a dijkstra, He didn't do it , Then comment on ( Carelessness ): I won't take the time to figure it out “ such ” Algorithm . “ such ” Maybe it means : It's not practical , Right , So I don't want to comment ( Another discussion about science and Engineering ). But at least one thing needs to be clear :ACM-ICPC The game is about computer science , Computer science is the science of algorithms , Computer algorithms dijkstra It has important practical and enlightening significance , So the competition must be tested .
        You take part in this competition , To win a prize , You have to learn this algorithm . You may think you have a high IQ , but ACM-ICPC The game itself is not an intelligence game , The game is to let you learn these things , therefore , If you don't want to learn , I don't think it's necessary to attend . Say this , Maybe the deviation is a little far away , But I hope the above analysis can draw such a basic conclusion : Don't want to learn algorithms well , There's no need to play .

       <2> It is not good to use a template  
        Now many of our weak schools ACM-ICPC Players rely on templates , Tell the truth , I also rely on , But I know at least one thing , It's not right , In a sense , This is a sign that you don't understand the algorithm . It also seriously affects the coding speed . In what I have seen huicpc035 In the competitions I have participated in , He has never seen a template , All site knocks , Once there was a game with a strong connected component + Shrinkage point + dyeing + What's the problem , I did it in their computer room , I copy the template , The result was a total of 1 One and a half hours , and 035 After defining the algorithm , Para Para , It is estimated that 30 It took more than a minute . Let's gossip about him : Me and kevin When I went to the training team of Huda , Gave him a nickname —— Typing man ( He should not know yet ). Because the sound of his keyboard is very loud and fast , ha-ha .

        I don't think he wasted any time typing code , A cow once said : Because every time you knock, there may be different mistakes , So it's a good habit not to use templates . I began to learn dancing link When , I typed out the code , Then the next few questions refer to the previous code , Later, it was basically direct copy. Now? , When people ask me dancing link Algorithms or related topics , I have a blank face .

        therefore , It is not good to use a template , Sometimes for some reason you may have used a template , But you must at least know that this is wrong , And have the opportunity to correct .

       <3> Need to learn in depth  
        image ACRush、zzy、ahyangyi... Wait for the talents of the national team , In itself, it is difficult to say that there is any comparability between us and them . But their learning methods should still be worth learning , Of course, we can't teach them by example , But from their papers in the national team training and they finished ACM-ICPC In the future track , Can be reflected . That's it : Learn more .

        In fact, this may not be powerful enough for me , Because I am also lacking in this aspect , I try to say what I think .

        First , Think ACMer Learning algorithms should not stop at the level of code implementation , We should have a clear understanding of the algorithm , There should also be good logic in the correctness analysis . Because the implementation of the code on the Internet may cover up the simplicity of the algorithm itself 、 Beauty and thought . Therefore, some knowledge of the algorithm as a whole is lost . Also take dijkstra Algorithm analogy , Some algorithms are not based on dijskstra Direct modeling of , Instead, you need to modify the algorithm , If you don't really understand the algorithm , There is nothing to do .

        Why do I always say Dijkstra Algorithm , Because many people only know how to use templates , And the template is not good , In what I saw Dijkstra In the implementation , Only czyuan_acm The code is well written . Not that other things are wrong , But there is a problem , Opportunistic .

        therefore , Read papers and books , Especially with English books , See its essence . On the other hand , That's the only way , What you learn can be learned in ACM-ICPC outside , Give you some inspiration —— Otherwise you will forget it quickly .

        as far as I am concerned ,035 I have read at least dozens of training team papers ,orzorzorz, And cut out the example .

       <4> Independent thinking  
        I am also ashamed of this , Because I also lack independent thinking . If I can't solve many problems, I will search the problem solving report , So instead, my ability to search data has become particularly strong .035 And many big cows have done much better than me in this regard , When they don't know how to solve problems , I won't be in a hurry to work out the topic , Maybe I take it out and think about it again every once in a while , I'll figure it out one day , After that, there is basically no problem with this type of topic .

        And I am just “ vanity ”, I won't be reluctant to think about the problem for too long , Just want to be as fast as possible AC, So I was eager to read the problem-solving report , One problem caused by this is that there are some important things that are not mentioned in the problem-solving report , And I ignored them without thinking about it , such , I still can't do . Me and 035 When discussing problems , I don't usually just ask him for the code , But when he doesn't understand , Ask me the general idea at most , And never want code .

        In the last year ACM At the end of the division , I find 035 The ability to solve difficult problems has obviously exceeded my level . Look at what he is doing now , It is already quite abnormal , Almost all 100 The following people ac, I have read these topics and basically have no idea , Even worse , I can't find the problem-solving report .035 The current state reminds me of a person , I wonder if everyone knows :wangfangbob, He cut bt The ability to solve problems is also shameful .

       <5> Do meaningful questions  
       1. Don't do water problems , The water title here is defined as : You can tell at a glance , And the midway implementation can be predicted without too many problems .
       2. It's about doing topics that reinforce what you've learned recently
       3. You won't, but you should .
        This is also saying , Some topics that are not very representative can be done less , Because it doesn't help the game .( Of course, my purpose of participating in the competition is very utilitarian , Non utilitarians are another matter ) Just now, , I put me in poj The number on the is compared with his number , He ac And I didn't ac Is basically a problem , I ac He didn't ac It's usually about water , I feel like crying ,5555.

        add :ac The large number of people does not necessarily mean the water problem , There are thousands of people ac The subject of , In a live game ac Few people , Such a topic is often a good one with certain thinking difficulty and easy coding , This kind of topic should be done seriously , Some senior said : Classic topic , Only so much , Make a , Just one less .

       <6> Estimate the time required for a certain training  
        I think my study of network flow is an example , I was probably before the division 2 I began to learn network flow in April ,1 Started learning the cost stream months ago , But for me , The network flow thinking cultivated in these two months is still not enough ( Although I have also done a lot of questions ), especially , This kind of problem often appears as a difficult one , I won't let you drink freely , therefore , At that time, the network flow in the Beijing competition area did not come out —— Utilitarianism , Learning network flow has not achieved good results .

        therefore , Now let's look at , At that time, I could not engage in network flow . If you want to learn something more difficult , And we must do it well , It should be done earlier , Learn... In an all-round way , Long term training is necessary to cultivate this kind of thinking . For example , If you don't learn calculus at ordinary times , Just one week before the exam, I was crazy about doing questions , I think so 90 It's very difficult to score .
        Of course , It depends on the individual situation , My understanding ability should be said to be of medium level , If you are a cow, you can learn it faster .

       <7> The degree of training  
        I sometimes brush all night , I don't know here huicpc035 Do you have this habit , But I didn't see him all night .
I think I brush my body all night , Or do questions for too long , It's not good . Why do we have such enthusiasm to do questions , Because we are interested in ; But one's success does not depend solely on interest , And rely on self-control . This is the same as playing games , Games are so interesting that we often stay up all night ——ICPC The topic is also very interesting , So sometimes all night . And most of the time , Because of a problem AC Do not drop , So I have to settle my anger before I go to bed , Such carelessness , All night .
        Actually, I understand , Overnight may not be a good result , It just shows that your interest is high . Staying up all night often disrupts your schedule , Disturb your biological clock , And then affect your short-term or medium-term training plan . and , Do exercises in a tired state , You often only have ac The desire of the topic , And completely lost ac The aura of the title . therefore , I suggest ,ACMer Be sure to arrange your work and rest properly , Self control , This is not just for you ACM-ICPC It's good .
        All in all , Effective training is important , Only through effective training can you get what you deserve to participate in this competition .

        And that is , except 035 outside , Another thing worth learning is richardxx—— I also admire , I don't think he is a genius , I think he has made all-round efforts to make himself excellent , Look at his blog You can see his learning process .

        Finally, let's talk about hard training , I mainly want to say this to our school acm team member :
        Objectively speaking , Many famous schools in our school have fallen short of the list ( I'm in water by comparison ). They are really smart , But no matter how clever it is, it can't be compared with ACRush Well ? They are SGU It's all cut up !ACM Not an intelligence test , It's not that you can drop pie without doing anything . Of course, I don't mean to say how many questions must be done , But if you think you can do two things at once , In terms of probability , You are 90% wrong , I'm an engineering student , I believe in probability, not miracles .

        I think 035 This aspect is also worth learning , I prefer bullshit , Sometimes when we talk about the topic, we often inadvertently talk about other topics , While studying ,035 It is determined not to talk about messy things , Except for the discussion QQ, According to my observation, I usually train cruelly . Now in retrospect , I have some regrets ,QQ The time spent online and online is spent learning new things , Maybe the result will be better .

       

       ACM-ICPC It is not the whole of college life , It's not all about algorithms , You can spend time doing other research , Do the project , Or take part in student work ( I appreciate those who have a good plan for life and career ACMer); however , If you do ICPC You didn't put in all that time , There it is ACM-ICPC In my life , Will only regret .

    原网站

    版权声明
    本文为[Young white horse]所创,转载请带上原文链接,感谢
    https://yzsam.com/2022/02/202202160527578154.html