学科竞赛的目的就是挑选尖子,题目的难度不代表高中生平均水平。你觉得难是天赋和训练量都不够的问题。竞赛老师解题厉害也是术业有专攻的原因,天赋最强的都应该去搞前沿研究和工程开发了,对计算机算法研发能力要求高的岗位都是高待遇。IOI这种国际级别的比赛比高考难很正常啊,但又不是只有一直晋级到IOI才会被认可。有的大学有省赛大奖就能降分。信息竞赛在各学科竞赛里难不过数学和物理,但是难过高考是应该的。说得极端一点,比如国际数学竞赛IMO里面的部分数论压轴题,一辈子研究数论的数学家都未必能当场做出来,但是极少数中学生选手可以。达到这种程度的学生,自然不会把主要的精力花费在高考甚至是竞赛中(他们的目标不是清北,至少是MIT这样的,学校差一个档次,搞出大新闻的机会就会小一截,当年Gell-mann得知自己没有考上藤校而只考上MIT后差点为此自杀……那时的MIT还没有现在厉害),一般会去通过渠道找大学知名教授请教学科前沿的问题,只带学生刷题的竞赛教练教不了他们太多,过人的智慧应该尽早用在更重要的领域。Deligne、Faltings、Lev Landau、Grothedieck、von Neumann、Erdos这级别的大佬都可以做到自己轻松造轮子前进,什么不知道就现查现学,别人的论文只要听一下前提和结论,就能在一两个小时内不看细节独立做出来,有不知道的定理就自己重新发现一遍,反正对他们来说也要不了很久。
学科竞赛中的优胜者,一类是天赋还行,加上通过不断练习和总结经验最终获得成功。这种人需要经验丰富的老师或教程作指导。大多数学生是这一类。另一类是中学时代学习能力就强到可以教大学老师做人的外星人,不但竞赛成绩好,二十出头就博士毕业,科研成果也遍地开花,这种人不需要刻意刷题,参加竞赛只是碰运气拿奖玩。比如说Peter Scholze高中时代不仅一边参加IMO玩,一边还在缺乏大量本科数学习题训练的前提下自学现代数学最难分支之一的代数几何,而且消化得比许多博士生还好。
学科竞赛怎么说呢。有一些学生的算法是高中速成的,但是也有很多学生是高中以前就有学过基础算法的,不是都要从头学。很多码农都有条件从小引导小孩。如果学生真的喜欢这个科目,确实能学到一般的课程里学不到的拓展知识和实用的小技巧,但是也会遇到很多刁难人的问题。如果能力差,会很亏,花的时间多,进度还慢,最终又耽误其它科目的学习。如果能力强,学竞赛知识反倒不会花太多时间,挤出来的时间用来学别的文化科目一般也差不多足够。这就取决于天赋能不能撑起兴趣的问题,需要学生自己权衡。计算机竞赛考察的内容比较接近数学建模,说白了就是贴近生活实际和许多的科研需要,从实用的角度看,其性价比比数学、物理高一些。你能通过竞赛进入姚班这类的学术强校的话,良好的算法基础很有利于快速进入科研前沿。就算成绩差一点放弃科研,以后参加大学校招刷算法题也会很轻松,计算机竞赛里学到的本领不会无用武之地。不过我个人是反对组织学科竞赛的,学习的兴趣在于探究自己不知道的东西,不在于考试。