FZU Monthly-201903 tutorial
题目(难度递增) | easy | easy-medium | medium | medium-hard | hard |
---|---|---|---|---|---|
思维难度 | ABF | G | CH | D | E |
A. Derivative
对于本题,你只需要有着扎实的高等数学基础即可通过。出题人的原意是希望这道题能够成为第二档难度,然而他似乎不知道有在线求导这样神奇的网站,于是,这道题就成为了简单题。
B. Fzuacmicpc
本题写法较多,只要你认真读题了且C语言基础过关,就一定会做。
在此给出一个简单的提示:你可以把数组复制一遍来处理字符串头尾相连的问题
C.Heroes
本题是一道基础的搜索题。
在本题中,零散的水晶其实只需要计数即可,重点是八个蛋(バケダン,炸弹)周围的水晶。由于炸弹只有8个,因此我们对炸弹进行编号,枚举每个炸弹是否选取,利用搜索求得对应情况下通过炸弹获取的水晶数量即可。剩余的水晶可以就直接购买需要的数量。
D. Ksubstring
注意到如果所有字符如果都有大于等于k个,那么可以取全部,不然这些不足k个的字符会把整个字符串切开,就变成了子问题,递归去做就行了。复杂度O(26 * n)
E.Magicwall
如果选定了[l, r] 这段区间,那么调整到中位数是最优的,所以就是滑窗维护中位数,可以开两个set,保证集合大小差小于等于1,以及一个集合的最小值大于等于另一个集合最大值,这样就可以维护需要消耗的代价了。
F.Monoid-group
事实上,题面是离散数学中关于群的定义。按照题目要求写三重循环进行判定即可。
G.Ninja
这道题的本意是考察矩阵乘法的应用,但是出出来后发现远比预先设计的来的简单。
对于题目给出的数据,用邻接矩阵进行存储后进行一次自乘,即可得到一次移动所能获得的得分。将最高得分乘上K就是最后的结果。
H.Permutation-generation
形如:
n n-1 n-2 n-3 ... n-t k 1 2 3 .. c
从大到小依次填写,直到逆序对超过,选择合适的k,使得逆序对得到满足之后,剩下数字顺序排列
出题人的一些话:
参考了上次月赛的结果,这次月赛的题目设置相对简单,结果也基本符合预期。如果你能够在这次月赛中通过三题或以上,那么你的代码水平应该能够在C语言期末考试,以及校赛中获得一个不错的成绩。
这次月赛共有95人报名,51人成功地做出题,希望参赛的大家能够向周围的同学宣传我们的月赛,使得以后的月赛能够有更多的同学参与到其中来,共同营造快乐的编程坏境。
比赛趣味统计:
全场第一个AC: 陈华能同学在开场9分钟时以惊人的手速AC了B题。随后,林闽沪同学以微弱差距在不到一分钟之内通过了A题。
全场最后一个有效AC:鲍子涵同学在16:56提交了D题WA掉了之后,在16:57再此提交成功AC,成为了全场最后一个有效AC题目的选手。
全场最顽强的选手:陈华能同学在15:35成功AC了D题,在AC之前,他一共提交了9次,其中6次TLE,3次WA,但是他一直在努力调试。最终他获得了全场第3名的好成绩。
全场最虐心的选手:吴少冰同学在14:47提交了一份判定为WA的D题代码。只有在后台默默围观的出题人知道,他的做法其实是正确的,只是没有判断题目中表明的输出-1的情况。吴少冰同学在这道题上奋斗了接近2个小时,做出了各种各样的尝试,最后在16:43分成功发现问题并AC了D题,成为全场第5名。
全场最有灵性的选手: 鲍子涵同学在H题的代码中,同时使用了关闭同步的cout和传统输入输出方式导致了WA。在出题人以为他要因此卡题的时候,鲍子涵同学在13分钟内发现了这个很不明显的问题然后成功AC了H题。请其他同学记住这个可能的错误点。