• 2013610 四省赛


    题外话

      由于这个星期一直在做Java ee.net实验,状态不是太好,做了几天几夜总算在周五晚做完。于是周五那场CF做了一下补补状态,傻逼题A居然挂了。。。早上五点半起床准备坐火车去牡丹江,这时快要累出翔。火车上睡不着,于是跟他们几个打牌消磨时光。一点多时,我们到达了牡丹师范学院就餐,居然还要我们自己掏钱,呵呵呵。。。

     

    热身赛

      刚进场,发现对面是一只俄罗斯队伍,由于东欧竞赛水平很高,于是当时我们快要吓尿了,后来事实证明他们实在是水到爆了。。。热身赛的F题由于我们没想到这次是第七届,于是我们拼人品,还好第三发就A了。。。A题直接暴力。有一题是这次比赛送的书上的原题,他两直接扔我敲。有一题忘了。有一题是计算最靠近的真分数(没太仔细看题),Timer想了出来。有一题是01字符串解密,我们三发现不会,各种浪交,最后吴佳男学长告诉了我们解法,顿时无限膜拜。

     

      晚上在宾馆颓废了一下,打了两个多小时牌,Jingo和大囧哥输的只剩下底裤了,哈哈。而我和yangboy没脱过,并且最后每人赢了一件衣服和一条裤子。

     

    正式赛:

      赛前我们看了一下气球,发现有很多颜色都很浅,这就是xiaodao周六晚在人人上说要2小时AK退场的节奏吗?

    比赛开始后,我们发现A是一个大水题,求n个数的lcm,我开始时想错了,然后Jingo推了一个比较靠谱的算法,于是我按照他的思路交了一发WA

    这时Timer发现G题是一个大水题,于是马上我换下机器给他,1A

      我发现E题是一个大水题:每次只能够删一对数,最后必然剩下两个数不一样,按大小输出。我看题时注意到了a[i]<=2^31,于是我sort了一下敲了一发上,莫名其妙的WA。。。

      于是我退下,我们讨论了一下A题,计算了一下时间复杂度,发现java大数可以水过的,于是Timer上去敲了一发过了。

    Jingo看完了K题,发现跟昨天的E题基本一样,只不过多了一个加密。于是他上去敲,我在看他敲的代码,测试了一下样例,发现不对。由于他的代码貌似有点复杂,于是他说换我上去敲,于是我在Jingo的帮助下敲完1A

      这时Jingo说用map试着做一下E题,于是他上去敲完交了一发TLE了。我在Jingo敲的时候重新看了一下我的代码,发现没有问题。当Jingo T了之后,我继续上去调我的代码,发现本地的编辑器在用long long时都有点问题。于是怀疑评测机的long long的输出问题,看了一下提问,发现没有怎么说明。于是我们用一题已经过了的题来尝试是lld还是I64d的问题(我们忘了昨天热身赛是否有测试的问题)。尝试了几次之后,我又试着改了一下交了一发上去,看了一下statues,发现是waiting,这时主办方说后台数据在重测,我们当场就想呵呵了。。。

      过了很久,终于全部返回了一个TLE,于是我和Jingo打算放弃。

      JingoTimer转去看D题,由于TimerJingo D算了一下复杂度,发现都没有什么思路,于是转去看有10来个队伍过的J题,发现可以把问题转换为一个求m在区间[a,b]互质的个数,他们问了一下我,我想都没想就说容斥原理啊。于是我上去裸敲。敲完之后发现样例不对,于是怀疑容斥原理部分的代码有问题,Jingo其实是发现了,但是我没弄明白他的意思,于是我把我的代码给他改,在他改的时候我找了一下书包里的模板,发现那部分代码没搞错,理解了一下Jingo说的意思,于是从Jingo手里抢过了机器,改了几次,尝试了几组数据过了。。。

      这时JingoTimer继续讨论D题,由于机器没有人用,所以我想直接手写一个hash上去试一发,没多久敲完,他们两没有看我的代码,Jingo帮忙测了几组数据,发现可过,于是我直接交了,statues显示在running。我刷新了几次之后,发现还是running。当时真有骂人的冲动了。于是我就不管去看其他题。过了10分钟左右,总算返回了一个AC

      TimerH题是一个图论题,于是我和Jingo看了一下H题,发现样例算不对,后来yy了一下,发现有点对。于是我直接敲了一个最短路上去交了一发,WA。。。于是我们怀疑题目理解错了。看了一下提问,总算找到了一个比较可信的解释。于是我想直接把最短路算法加多了一维存剩余的时间,问了一下Jingo是否可行,Jingo觉得可以,于是我直接敲完交了一发,WA。我打印代码,TimerJingo发现了D题一个最有可能的解法,由Timer上去敲。

      接过打印后的代码,我一行行的看代码,发现是spfa在松弛时有一处手残了,于是把Timer叫下改了一下交了上去,AC。当时感觉有点愧疚,这么一个简单的代码都会写残了。

      AC了之后,Timer继续写D题。我之前听TimerC题像一个AC自动机,于是我和Jingo上去看。发现没有什么思路。后来Jingo上去帮TimerD题的代码。而我继续想C题,后来总算想到了正解。

      C题题意是:给出NN<=20000)个操作,每个操作有三种方式:

      1.add s,表示在字典中添加一个单词s(如果有不管)

      2.Del s,表示在字典中删除一个单词s(如果没有不管)

      3.Query,表示询问在文本串str中在当前的字典中出现的单词次数。

      

      解法:

      首先离线把所有的操作读进来,然后对于add操作,添加到trie中,其他的不管。然后建立fail指针,跑一边AC自动机,用数组a存假设每个单词都没有被删除时的个数。

      模拟一下操作,如果是add并且该串不在字典时,sum加上该串的出现次数。如果是del并且该串在字典时,sum减掉该串出现的次数。如果是query时,直接输出sum

     

      交了几发,都MLE了。应该是我的AC自动机模板有点问题。最后他们两没把D题做出来,我也没有参与到他们打讨论之中,如果我讨论进去的话,会不会多出一题呢???因为他们的思路是对的,就是卡了常数。换一个差分数列或者树状数组就能过。

     

      总之这次比赛是这么多次比赛中最不爽的一次。

     

      颁奖同样很奇葩,把所有的获奖队伍念完直接随便上去领奖,范神(四省赛三连冠)上去领了四次奖(一二三等奖、冠军)。主持人在念冠军队伍时,念的是:欢迎哈尔滨工程大学安可队上台领奖,当时我们都笑了。总之这次比赛槽点真多。

     

      回来是三天的端午假期,目前我还不能够以这样的借口来颓废三天,因为我还没有拿到offer,很多学长比我强,但是他们拿offer也不容易,至于我现在这样的水平,会有人要吗?低俗的说,我要为自己的家人、自己的未来着想,我要变得更强才能够在未来为我的家人提供更好衣食住宿环境。

     

      最近的这几场比赛和近两年的比赛专门考察算法知识的题目很少,现在的题目考察更多的思维,所以以后专门做CFSGU

      到这个学期结束时的目标:CF1800,题数在300题以上。

     

      以上~~~

  • 相关阅读:
    lucene初探
    直接插入排序算法(java)
    快速排序优化算法
    大根堆
    学习资料地址
    Lucene:基于Java的全文检索引擎简介
    开关按钮
    微信小程序—如何获取用户输入文本框的值
    微信小程序—获取用户网络状态和设备的信息
    Bootstrap 导航栏
  • 原文地址:https://www.cnblogs.com/yejinru/p/3130576.html
Copyright © 2020-2023  润新知