夏令营day11总结

来源:互联网 发布:过程控制软件 编辑:程序博客网 时间:2024/05/21 17:30

今天打了场亦可赛艇的acm。

虽然主办方(其实就是maple和tmk两个人233)号称尽力模拟真实的acm,然而由于没有打印机,也就没有纸质试题,因此提供两部电脑,只有一部可以打代码,另一部只能看题2333。气球虽然有,然而tmk不会弄,直接发给我们让我们自己吹,搞的lkb不小心还吹爆了一个

昨天说了,蒟蒻lkb抱了xyf神犇和yhf神犇的大腿,搞了个“闷声大发财”队,企图通过队名加rp

由于lkb实在太弱,当不了代码手,因此只打算翻译题目。

(教练组织比赛的时候直接挑的英文原题给我们做。)

比赛一开始,全队就奔着抢一血去的(赛前一分钟还在玩奇奇怪怪的网络天才2333)。lkb第一时间点开了A题,读题10s之后发现是纯净水,题目大意是:

有长度为n的正整数序列x1..nq次询问,第i次询问时给定一个正整数mi,统计x序列中大于等于mi的数字的个数。

显然简单的排序+二分即可解决,于是xyf神犇花了大约5min敲代码,一交果然AC,顺利拿到全场一血。这时比赛才开始6分钟。

趁刚才xyf敲代码的时间,lkb又抓紧看了几题,发现B题是个很逆天的东西,看数据范围应该比较难做。

给定文本串Sm个模式串Ti,要求在S中找到不重叠的两部分,使它们拼接起来等于T。问最多能匹配多少个不同的T

大家讨论了一下,迅速决定先跳过此题。事后也证明我们的决定是明智的。

于是lkb又第一时间翻译出了C题,大意是:

n个人和m种语言,每个人会ki种不同的语言,学习一种新的语言的花费为1。人之间的交流可以是间接的(即如果A与B都会某种语言i,B与C都会某种语言j,那么我们也认为A与C之间可以交流。)
问:要达到所有人之间可以互相交流,最少需要多少花费。

这题lkb一看似乎是并查集?但不敢主观臆断,于是与xyf和yhf解释了一下题意,认为应该是并查集没错。

于是xyf马上敲代码,又是几分钟的工夫就搞定了。但这次提交上去却WA了。xyf仔细分析了一下题目,发现我们少考虑了全为0的情况。于是加上特判之后果然AC,仍然是全场第一个做出此题的队伍。

在我们队做C题时,退役狗队和RNG分别过了E题和
D题,这时全场有三支队伍过了两题。我们队因为一次WA,罚时掉到了第二。

于是lkb又跑去看D题,然而yhf一听到几个字眼就可以判断出这题是他之前做过的bfs水题。题意是:

  • 给定两个正整数nm,每次可以执行两个操作之一:
    • nn×2
    • nn1
  • 求把n变成m所需的最小步数。

于是yhf开始敲代码,大概也就是花了10min左右的样子,一次AC。而退役狗队又比我们早几分钟做出了D题,所以我们两队是场上仅有的两支在40分钟内做出三题的队伍,但由于前一题的罚时,导致我们落后了20分钟左右,屈居第二。

在yhf敲代码的时间lkb又翻译出了E题:

有一个字符串,这个字符串的每个字符分别代表着0-63之间的数字,然后问有多少对相同长度的字符串 & (按位与)运算之后,恰好等于这个字符串

但由于lkb感觉样例有些奇怪,无法理解题目的意思,于是打算先放下这题,往后面看看。

很快F题的题意也知道了:

n×m个格子,第i行第j列的格子里有一个类型为aij箱子(原文“chest”被google机翻弄成了xiongbu……囧)。所有编号为xp1的箱子里都有一把钥匙可以打开类型为x+1的箱子。类型为1的箱子不需要钥匙打开,类型p的箱子里藏有宝藏。你一开始在左上角(第1行第1列),问至少要走多少距离才能拿到宝藏。

这题也是比较明显的bfs模型,仍然交给yhf实现。但第一次交却T了。我们发现yhf的输入居然用了cin……那是将近十万的数据量啊!!马上改scanf。改完迟迟不出结果,怀疑是被yhf卡评测了。

于是xyf说再交一遍试试?然而vjudge不允许交完全相同的代码,就加了句//+1s的注释,然而后面出结果才发现,原来两次都T了。。也就是白白交多一次无效的,多罚20min。。TAT

后面又想,能不能搞个排序预处理优化一下什么的,试了一下,确实有效果,之前在第16个点T的,现在在第19个点T。然而还是T啊。终于决定弃疗去搞后面的题。

G题是一道网络流,我们三个都不怎么熟悉,只能跳过。

H题是位运算,感觉有些复杂,也先跳过。

I题读不懂题。

J题又tm神奇位运算。

K题终于可做了,xyf神犇指点了一下,lkb打的代码(也是lkb这次打的唯一一题),第一次交的时候WA了。xyf看了一下,原来是考虑的情况不到位。第二次修正了之后就AC了。

后来总算把E题的题意搞懂了,但是还是有失误:不是原串&另一个串=原串,只要是某两个串&之后=原串就可以了。因为这个审题上的失误我们WA了好几次。最后还是仔细分析了样例2之后才发现,及时补救了回来。这个主要是我的责任。

而在最后只剩十几分钟的时候,lkb又发现了自己H题的审题失误。或和异或是交替进行的(the operations of bitwise exclusive OR and bitwise OR alternate),而不是之前所认为的一直或,直到最后一轮才异或(有些受到题面例子解释的影响)。跟xyf说了之后,他很快搞出了个简易版本的线段树,并在最后时刻过掉了H题。

最终,闷声大发财队以6题的成绩名列rank3(退役狗队AK全部12题,RNG队9题),获得了一等奖的好成绩。

这是lkb第二次打acm(上一次打好像是去年夏令营),成绩还挺不错的。感觉自己又有所收获。

这次真的获益不小,总结出来还挺不少的:团队的分工很重要啦,不能迷信机翻啦,手速很重要啦,还有其他一些。

嗯,加油,下次做的更好。

0 0