【AC大牛陈鸿的ACM总结贴】【ID AekdyCoin】人家当初也一样是菜鸟
acm总结帖_By AekdyCoin
各路大牛都在中国大陆的5个赛区结束以后纷纷发出了退役帖,总结帖,或功德圆满,或死不瞑目,而这也许又会造就明年的各种“炸尸”风波。为了考虑在发退役贴以后明年我也成为“僵尸”的可能性,于是改名曰“总结贴”,不提比赛细节,不提比赛流水账,权当是大学本科生涯中acm生活的点滴记录……
(1)入门篇甲
PS:下面内容为 Ctrl+a,c,v的产物
==========================================================================================================
一张宿舍楼下墙上的通知吸引了我的注意力...是福州大学第五届程序设计大赛的 报名通知...那时我还全然不知道这比赛什么内容就傻傻的报了上去,仅仅以为是考程序的函数的使用和调试.但是没想到没有我使用的语 言....vb/delphi,delphi和pascal区别太多了,那时我发现比赛竟然能够用C语言,于是打开从来没打开过的C语言书開始了学
习...
学习的过程十分艰苦,对于上学期上课都没听的我来说,对于曾经是面向对象编程的我来说这简直是恶梦.
哎好不easy把书啃完了来做题还是无止境的WAWAWA那时候最希望看到的就是:Accepted
我又找到了大一学VB时的感觉,于是在同学们的奇怪和不解中我開始做题.
(其它同学还没开网号..所以上电脑的人比較少,我不玩游戏就十分惹眼..)
一个非计算机专业的人整天在电脑前面,他们都怀疑我是否报错了专业..
在做题没几天以后认识了张大牛...感谢他在我入门阶段引导了我...
还认识了yayamao,让我知道了大一牛人也非常多...
自卑感油然而生
那时面对那么多别人看来是"水题"的题,我仅仅能无奈的一次次WA,顽强的WA着....
面对小学就省赛冠军的人,我仅仅能算是在人老珠黄的时候的无畏挣扎..
非常多次想放弃,还是张大牛安慰了,给了我信心...
最后总算买了自己的第一本算法书(好贵...)
突然发现一大堆看不懂...
这个时候又是张大牛给了我引导.
学习要慢慢来
看来他说的是有道理,baidu看了下他,牛牛事迹无数...orz......
在yayamao的打击下我開始去水题了...事实上我自己做的题还不到100..
和yayamao的差距还是非常大啊
orz...again...
最后还是把报名取消了,由于我全然不会算法.
我不相信后来者无法居上,我不相信god不会给努力的人一次小小的机会.我相信自己.........能达到yayamao 1%(开玩笑的-_-)
感觉这1个月来收获不少,懂的了一点点点点点点的毛(还没到皮呢...)
but i insist on that everything will be better after hard work.
我想我努力以后就没遗憾了,尽管和牛人的差距是非常大的,但是希望常在,未来是未知的,我十分相信这一点...
我,一个菜到不能再菜的鸟,在仰视前辈们的丰功伟绩后顿然觉的动力十足,在前辈们的努力下一个个成绩被书写了...
前辈们非常努力,我想我会更努力.90包泡面是能够尝试的(VB就这儿过来的...)
说不下去了..
大家祝福我这菜鸟
我也希望这个帖成为我自己的一个起点
以后来回味
顺便
orz.......yayamao
==========================================================================================================
(2) 入门篇乙
09年寒假认识了sha崽当时他似乎刚入HDU的校队么,似乎刷了差点儿600题。(PS. 当时我似乎做了 60题)
一问他竟然是08的,我的神啊,简直太神了。
寒假的时候HDU实际上是有很多次内部DIY比赛的(内部比赛),只是因为各种邪恶的原因我似乎也參与了一下,事实上每次都是被屠的么……
期间看到sha崽的实力还是非常不错的.
(3) 入门篇丙
回顾当初正是这个比赛使我知道了ACM
并最后使我接触了ACM,感慨时间过的好快哇..
今天早早来到机房,发现黑丫丫的一片人-.-
问了一下才知道那是看座位号的~非常奇妙的与vge,yayamao同机房....
比赛開始前适应了一下系统,发现竟然要使用__int64...寻常FOJ都是long long的说.....yx啊
总的来说题目难度还好,就是现场的气氛导致自己比較紧张,非常久才出第一题,自己bs自己下..
最后一题在ZOJ做过的,比赛的时候AC的题竟然没想法。。。
A.众数问题
给定一个数的集合,求当中出现次数最多的数,假设存在多种答案,那么输出小的
数据规模是:
元素个数<=100
元素在[-100,100]
这题瞬间被无数大牛秒杀。。
能够直接Hash或暴力统计也能够,数据规模太小拉
MS题,能够说是这次比赛中最简单的题
做的慢被歧视了-_-!!
B.括号表达式
说给出一个字符串,就仅仅有'(',')'
假设它本来就已经匹配好了,那就直接输出
否则输出那些没匹配好的,并把它匹配好之后的输出
))(())
ans:
))(( //这些不能匹配
(())(()) //输出上面的匹配后的串
简单的栈的应用
怎么推断是否全然匹配这里就不介绍了
以下就介绍下怎样匹配那些所谓的“无法匹配的字串”
拿上面的样例来说吧
这样的串必定是
a.仅仅有'('
b.仅仅有')'
c.分为2部分,前面一部分是')',后面是'('
仅仅有满足这3个条件,才不匹配
所以就非常easy,简单的统计')'的个数,然后在输入这些')'前先输出相应个数的'('
再统计'('的个数,在输出这些后,再输出同数目的')'
C.等式数量
给定一个集合(大小最多5000),里面全部的数字都不同样,希望找到不同样的三个数a,b,c,满足a+b=c
并须要求满足条件的对数
For Instance
3 1 2 5
显然有1+2=3,2+3=5,so ans is 2
因为数字都是独特的,我用了Hash表来解决,既:
枚举a,b用常数时间来查询a+b是否存在,假设存在,是否等于a,b中的一个,假设不等,那么就能够算一种了
时间复杂度大约是O(N^2)
D.二进制位数
给定一个数(N<=10^1000),求不大于他的拥有最多1的M,并要M的2进制位数和N一样假设存在非常多M,那就输出小的
首先先来看小数据
12->1100
那么显然11就是解,由于11->1011
那么考虑一下应该怎么处理?
非常明显吧,既把数转化为2进制以后,从最高位開始,找第一个'1'(最高位不算),把它变为0,为什么?由于这样以后保证变化后的数小于原数,然后把该位置后面的全变为1
于是得到了一个解M'
BUT,还要和原来的N比較
Why?
15->1111
依照上面的规则得到的是1011
显然答案应该是15才对,4个'1'
所以比較一下既可
本题最最最最最(省略无数个"最")恶心的既是高精的实现,用到了除,求mod,加,乘...
敲的非常吐血...用java交好象出啥问题,非常�,这题浪费了大量的时间,导致悲剧
E.简单BFS
F.没看,据说是简单只是非常恶心的模拟题...还好没看:(
G.奇怪的数组
计算[0..LCM(Asize,Bsize)-1]内的和,然后用等比数列求和公式计算(等比的关键就是幂上的i/Bsize)
注意用公式求的时候利用(A/B)%C=(A%(B*C))/B来做..
H.最大树高
这题是这次比赛最失败的地方,ZOJ的比赛做过,并且还是在比赛的时候过的,如今竟然傻了。。
哎~
直接枚举度数为1的点既可
最后节点编号取个min,深度取个max既可
(上面这个算法在某些情况下会TLE...继续想ing...)
以下是WZC神牛的算法
随便选个点,找从它出发的最长路,再从找到的那个端点来一次,就能够了。能够证明这是对的。 尴尬死了这题,*&%&^%^&(ignore 2^inf)
总的来说会比前几次的现场做题好很多,至少没那么紧张了.好正式的比赛~还发了题目本子,great,其间还看到了WS的LL...最后470分尴尬收场,也不知道是第几,等待最后的结果咯~
接触ACM快1周年了,想想当初自己什么都不会,正是校赛使我接触了ACM,在这里谢谢一開始热心帮助我的daxia,vge,yayamao等...谢谢你们在我不厌其烦的追问下为我解答那些如今看起来非常傻非常天真的问题,谢谢你们:)A:-100<n<100 Hash计数
B:弄个栈,配对结束后假设栈空,输出原字符串,否则输出栈的内容,假设栈中有')',左边补'(',假设栈中有'(',右边补')'.输出就可以.
C:排序,枚举c,a取数组头,b取数组尾,两头缩进求出全部的a+b=c;
D;高精度,转成2进制,从高位起找到第2个1,假设这个1后面没有0输出原来的数,否则把这个1变成0,后面全变成1,在转成10进制输出.
E:简单BFS+简单DP...
F:假设看不懂题目建议找个贪吃蛇游戏玩玩,写了这个题,你大概就能够自己开发个贪吃蛇游戏了...
G:临时还没做...
H:拿原点来BFS求出最深的深度且编号最小的节点,在拿这个节点BFS出正确答案
太疼了,闲的没事干和sha崽在hdu挂了个比赛
HDU第一届“老菜鸟杯”编程公开赛,能够说是我第一次出题吧……
这…… 第一次出题显然是比較�的么,各种形如数据规模不符合数据之类的错误层出不穷.导致这次比赛使不少人郁闷了
(5) 入门篇戊
fjnu校赛,入校队前的第一次现场组队赛
-_-原来的目的仅仅是为了熟悉一下组队模式
以下很easy的说说今天比赛过程
显然今天缺点暴露无疑,因为一開始还没有找到组队的状态,导致前1小时一题都没出....
直到我在10:13:441Y了C才拿到第一个橙色气球
当然这个时候我旁边的非常多队竟然有过3题的了-_- yming...
随便如此只是还是没什么压力-_-毕竟来不是为了啥,就是为了体验一下气氛~
G我推出公式,提交1Y拿到黄色气球,当时已经有无数的队过了此题....
A,小波和我讨论以后,使用O(n^4)的算法1Y,得到了粉红气球:),事实上全然能够O(n^3)
但是这时某队竟然4个题了-_-...没过多久竟然5题...继续yming..
PH写的B莫名其妙的WA了好几次..
最后非常奇妙的水过,得到了蓝色的气球
12:47:05,F,Nim+求SG,1Y水过,得到了全场第一个紫色气球
最后敬仰一下xiaobo,调试几次以后AC了H,拿到了别人已经拿到非常久的绿色气球
最后6题收场,我3,xiaobo 2,PH 1
第一次组队暴露出来的问题要当成经验-_-
同一时候ym某队,在最后2分钟水过F,直接登顶
PS.fjnu的志愿者非常热情~感谢他们:)
PS: 当时队友 xiaobo(zwb), chijing (ph)
当中第一头已经成功保到中科院,第二头眼下似乎阿里了 (我眼下三无中?……T_T)
(5) 入门篇己2次区域赛
又是一年退役时,昔日以前请教过问题的无数大牛在今年区域赛以后就正式退役了,伤感一下...
10月29日 出发
买了一群零食带到火车上,突然发现火车的卧铺和YY中的全然不一样,那么小的地方我真不知道我是怎么挤进去的,去的时候还非常热,晚上还被热醒了好几次,带去的东西差点儿没怎么吃,头晕了一整天.于是睡觉完以后再聊天几小时以后就到了武昌,感谢大HH和刘阳的短信~
10月31号 开幕式
whu的志愿者果然是MM少数,于是如今突然想起来某志愿者男出如今开幕式,闭幕词,现场...为什么一个人能被我看到那么多次-_-
好的,于是热身的题目果然是老题,显然仅仅过了一个比較简单的题,至于B则是YY以后数次WA,C是全然没去看的说(Hash 没用武之地了~,严重敬仰小HH 勇猛通过C)
11月1日,好的这个日期确实非常勇猛.
开场没多久突然看到了粉红色的气球,于是我立即去看C,但是突然发现题目的描写叙述比較飘逸,看了好久没理解意思,后来队友在我还没看懂题目的时候就过了...于是接下来我们就去看一个比較简单的模拟题和G,模拟题非常顺利的1Y,而G则因为题目看错,导致了一次WA。
以下就是B,因为队友YY出了一个相当orz的构造方案,于是用拓普排完恶搞2Y(第1次RE是细节问题),接下来的就是H,H我一看就发觉是DP,但是显然我是写不出来的,于是队长YY以后2Y,此时我们排名第10。。。我看到了金的希望... 发现E还是能够搞的,于是開始了杯具,到最后依旧是没通过E。在郁闷中结束了我今年的ACM比赛
宁波和武汉的2次比赛2个银,当中有惊喜也有无奈.不管结果怎样,这对我这新人来说都是一个非常好的锻炼....于是接下来的目标就非常明白了,多添加�编码能力,再学点新的东西.自己还非常菜,只是假设我什么都不做还是仅仅能这么菜,但是我做了结果尽管可能是我依旧非常菜,但是我至少不会懊悔bless2位队友,合作还是十分愉快的,曾记的暑假30多顿的饭,ACM真好玩.
re.于是复习去了,先把欠的课补完.
明年期待AekdyCoin的表现咯~
2010年的2次区域赛,简要总结为: 同志仍需努力~
第一次哈尔滨的铜十分符合杯具的风格,至于第二次杭州赛区则是我的一坨屎坏了一锅好粥(T_T)
于是09,10算来,我似乎去了4次区域赛+2次邀请赛 似乎结果是3:2:1,这……
(6) 入门篇甲乙丙丁戊己庚辛
第一次接触OI: 路过任青OJ,加了一个内蒙古的MM询问01背包的实现
第一次出题办比赛:HDU 第一届老菜鸟杯第一次现场赛:宁波赛区
第一次群聚: 宁波
第一次要到的签名:自己的(-_-)
第一个徒弟:narutoacm
。。。。(7) 关于ACM_DIY( 群号: 48866438)
ACM_DIY如今已经成长为了一个全国闻名的大水群,聊天记录数以万计.期间涌现出很多可歌可泣的故事和奇葩异常的语录.同一时候本群聚集了来至于全国几十所高校的ACMER,当中不乏类似hhanger,hl之类的高手。本群涌现出了各种baidu,tencent男,希望各位hr有兴趣能够来本群考察围观。本群的ACMER都是经过严格管理,保证肉质鲜美,无毒无害,绝对不加入�色素和激素!