• 做一个幸福的人,读书,旅行,努力工作,关心身体和心情。
  • 不管有没有人爱,也要努力做一个可爱的人。不埋怨谁,不嘲笑谁,也不羡慕谁,阳光下灿烂,风雨中奔跑,做自己的梦,走自己的路。

ACM与追MM之间的关系

分享 lcq 5年前 (2013-08-21) 531次浏览 0个评论

呵呵,ACM和MM之间有什么关系呀?我会告诉你,它们之间的关系是最后一个字母都是M。呵呵,知道了吧,当然。你知道了,我是在忽悠你,瞎扯蛋。但是……如果你不知道什么叫ACM,我怎么把它们之间的关系说清楚呢?所以,想要知道ACM和追MM之间更深层次的关系,请允许我先介绍一下What Is ACM?

ACM到底是啥呀?我会告诉你,那是一群美女。呵呵,这不是比喻,不是比拟,不是拟人等,不要想歪了,完全我又是在忽悠你。ACM:Association for Computing Machinery,即美国计算机协会。咯咯,现在看来ACM和MM之间有关系吗?没有!再看一个ICPC:International Collegiate Programming Contest ,即国际大学生程序设计竞赛。呵呵,ACM和ICPC是有联系的,因为ICPC是由ACM主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。所以简单来说:ACM程序竞赛就是以团队的形式参赛,每对由3名队员组成,使用一台电脑在5个小时之内使用C、C++或Java中的一种编写程序解决7到10个问题。我们把写好的代码提交给服务器,服务器在几秒之内马上会返回一个结果。Accepted (AC)或者 YES,那么恭喜你,你的代码是正确的,这好比你追MM之后那个MM答应做你的GF了。当然,有的时候是Wrong Answer(WA)或者NO,那么表示你的代码是错误的,这好比就是你追的MM拒绝你了。当然,还有其他的情况:Presentation Error。这表示你提交的代码是正确的,但是你输出的格式错误。这个问题不大,你只要修改一下你的输出格式就可以。这好比就是你追的女孩她有做你GF的意思,只是你表白的方式出了点小小的问题:比如没有巧克力呀,鲜花呀。当然,还有其他一些情况,在后面再做介绍。

看了上面的描述,你是不是觉得ACM和MM之间有关系了呢?呵呵,那么,得恭喜我忽悠人的水平又前进了一步。呵呵,想不想继续被我忽悠下去呢?那么,请接着往下看。

我们在ACM程序竞赛中提交的代码就是我们追女孩的表达方式,我们把这段代码提交给服务器(服务器就相当于MM),这个过程应该就相当于是一个表白吧。然后服务器就会调用成千组数据来验证你的代码是不是正确的,这个,就相当于MM对你的考验。上面说了,如果通过考验,那么她就会返回一个AC或YES。只是,新手在ACM竞赛中一次就被AC的概率很少,就好像没有谈过恋爱的人想追到一个MM着实不易。所以当服务器(也就是MM)返回WA之后,我们就要想办法修改我们的代码。看看我们哪种情况被我们忽略了导致服务器的测试数据通不过,这就相当于我们追MM之后被MM拒绝我们会反思为什么她不喜欢我。或者她到底喜欢什么样的男生。随着问题的深入,问题于是就逐渐变得复杂起来。也许首先我们用贪心算法,也就是最直接的方法,这个方法就相当于不管你追的MM喜不喜欢你,反正不断地向她表白。表白表白再表白!贪心算法的优点是在局部范围是最优解,当从整体却不一定是最优解。这好比你的一次一次表白虽然让那个女孩知道你确实喜欢她,可她从总体上不一定接受你。经过贪心算法的策略追不到心爱的MM之后,于是,我们换从动态规划(DP)着手,因为最直接的办法从全局不一定能被MM接受。所以要从全局考虑。动态规划得出的解一般是最优解。但要经过的步骤太多,比如,你会通过她的51来猜测她的心情,通过她的好友来了解她喜欢吃什么,记住她的生日。在她伤心地时候给她安慰,在她开心的时候分享她的喜悦等等。所以,经过这些一般是能被女孩接受的。只是,动态规划花费的空间和时间有可能太大,超过了服务器所能接受的最大内存和时间限制。这个就好比一个MM心里已经有别人了,再也装不下你了。当然,还可以用分治策略,就是把追MM这个浩大的工程分成许多小块,然后一小块一小块地攻破!最后可能用到的就是回溯法了,所谓回溯法就是把前人所有怎样追到MM的方法一个一个地试,当然,在有的方法中试着试着知道用这种方法肯定不行,于是我们退回来,接着试另外一种方法。直到把所有的方法都试过。如果所有的方法都试过之后还是不能被你的MM接受,那么,杯具毫无疑问就发生了。

还有,就是ACM中最难以找出错误的是你把题意理解错误了。这个就好比你在追一个MM的过程中感觉人家对你也有意思,但其实她只是把你当做好朋友来看待。我的也许就是这种情况。在经过两次Wrong Answer之后,我选择了放弃。因为我们在ACM竞赛中,在我们的一生中,不只有爱情这一道难题,除了爱情之外,还有其他的题目值得我们去分析去解决。当然,有的时候只是暂时的放弃,因为如果解决了所有的难题只剩下爱情这道难题,为什么不可以再去试试?

当然,追MM要比ACM难多了。第一、从时间上来说。无论是在Online Judge 上做题目还算在ACM程序竞赛上,最可怕的就是出现Waiting这种情况。不过,这种情况在ACM竞赛上99.99%不会出现。因为出现这种情况,除非是服务器坏了或者是成千上万个人同时提交代码。而我第一次追一个MM我Waiting半个月才返回一个WA,所以在第二次表白的时候,她还想要我Waiting的时候,我毫不犹豫地切断了她给我Waiting的机会。第二、从复杂程度来说。ACM程序竞赛的题目数据已经放在服务器上了的,一般是不会更改的。呵呵,除非数据有误。而MM的数据她会随时更新,今天失落的时候她需要你给她信心,明天开心的时候需要你分享她的喜悦,后天伤心地时候需要你陪着她……所以,为了通过MM的数据着实不易。除非你有一个万能的程序,能通过世间的一切测试数据。但可惜没有,所以这个世界上就出现了NP问题!(NP问题指无法估计计算复杂的问题)

呵呵,从上面那段可以看出。追MM的复杂程度无论哪方面都比作ACM题目难,所以校赛,湘潭邀请赛打击我之后我选择了继续。被MM 拒绝之后我选择了放弃。虽然有的时候坚持下来可能能被MM接受,但如果是个NP问题那我就杯具了。所以,我只能对自己说“天涯何处无芳草”。能被自己喜欢的人喜欢那是一种奇迹,我是不能依赖奇迹而生活的。不能找个自己最爱的人过完一生,那我就找个爱自己的人过一生也不错。

你呢?在Submit很多次之后还是被拒绝,你是选择放弃还是继续?


乐趣公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明ACM与追MM之间的关系
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址