【引用】XDU第六次月赛题解

本文提供了一次ACM竞赛题目的解答概览,包括签到题、猜数字游戏、动态规划、模拟、图论、排序算法、快速排序、组合数等题目解析,旨在帮助初学者逐步理解并提高解决ACM竞赛题目的能力。
  这次题不是我出的,但是有些同学吵着要看题解,就先写一个简单的版本,有些东西肯定不会详解,比如你不知道快排是什么,那请自己去网上查,我肯定不会在这里讲的。
  A题
  这个题是签到题,基本上知道什么是二进制就会做。
  B题
  这个题和文曲星上那个猜数字游戏其实是一样的,只要枚举从00000~99999的所有情况,然后对于每一种情况判断一下,把满足的数字保存下来,如果超过两个或者有0个,就是not sure,如果只有一个,就输出那个数字就好了,值得注意的是,如果那个数字不够5位需要在前面输0.
  C题
  NOIP普及组难度,最简单的一种写法是想象成有n+1个位置,最后一个位置不管放什么都是0的获得,那么方程就是dp[i][k1][k2],表示到第i位,以k1开头,以k2结尾的最大值,那么最后要求的就是dp[n+1][i][i],这里i是0~3。没学过DP的这个真没法做。
  D题
  这个题直接模拟一下统计的过程就可以了,只有一个问题就是如何判断一个字符串到底是不是已经输入过了。这里说的很清楚,每个字符串只有4位,假设是abcd,那么把它们比‘a'多的部分记下来,a*26*26*26+b*26*26+c*26+d,用这个做hash表就可以了。
  E题
  这个题的题意看起来麻烦,其实就是求把N个点连成K个连捅块,最小的边之和是多少,裸的kruskal,学过一部分图论的就会明白了。
  F题
  这个题可以直接调用STL里面的partical_sort,也可以直接自己写一个快排,每次排序的时候如果(left>k)那么就不排这一边了,也能很快就出来。
  G题
  数学公式,忘了公式最后是什么了,就一个简单的组合数,但是因为N的范围太大,又要模一个东西,所以需要用到逆元这个东西,具体逆元是什么自己上网查。
  H题
  这个题其实去网上搜索一下”ACM 最小环“,就知道该怎么做了,我直接去网上随便搜了一个代码改了一行交上去就过了。

  最后奉劝大一没多少基础的新生不要一上手就想做这个想做那个的,ACM难度很大,需要一步一步来,一步登天在这里是不适用的,虽然我写了题解,但是大部分人依然是看不懂的,如果真的想在这个领域有所成的话,请放下所有的浮躁,耐心努力一段时间,才能有明显的进步
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

johnlxj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值