标签:第六届山东省赛 acm 编程竞赛 省赛总结 c++
从空间拷过来的,虽然已经过去一个月了,记忆犹新
也算是重新拾起这个blog
Just begin
看着一群群大牛还有队友男神的省赛总结都出了 我终于也耐不住寂寞 来做个流水账抒抒情好了
第一次省赛 心情很激动 也掺杂着一点小紧张 其实最想吐槽的是伙食 真的真的真的真的吃不饱。。。不过很感谢我们xh老师提供的x牛和x力架 正式赛的时候根本没心思吃午饭 x牛确实提供了很多能量(我真的没有打广告 你看 都打码了 嗯)
转回正题 说好的是来做流水账的 九号早七点集合从淄博出发 睡到了大青岛 其实某种意义上来说 这里将是我另一个老家 嗯 到了就大中午头了 山科的南门果然霸气 我们的车活生生从南门开到山科大西北边的校内旅馆 因为只有南门能通车。。。然后就是入住酒店 领队服 队服我们三个人都要大了 挨个换下去一个号
也是醉了。。午饭。。。只记得那根鸡腿。。。
匆匆吃完午饭 终于 进入主题了 从大西北边步行到东南边计算机学院参加开幕式 种种槽点就不列了 印象最清晰的就是那个ACM学会会长和那个跟y霸一样一样的裁判长 ym我金牌y~~
然后就是热身赛 一队队都提前拆题。。。好歹也是场比赛啊喂 见周围人都拆了也索性拆掉。。
A题一撇样例 解方程 果断先pass 往后翻一页 立马发现赤果果sum三个大字母 公式立马脱口而出 Ns迅雷不及掩耳盗铃响当当之势 4分钟 1Y 第一次省赛的第一个YES 而且还是1Y 立马信心倍增
B
前N项和 注意范围 用无符号长整型 n*(n+1)/2 注意判断奇偶先将谁除2
往后翻 感觉C不难 我就用我的渣英语去一旁慢慢抠 Ns跟Yf一起看D题 把C题读懂后没有想出好的算法 就去把题意讲给Ns 然后Ns想算法 我就问Yf D题大意 大约一读 感觉到是类似的规律题 Ns一时间也想不出C题算法 就一起研究D题 Ns按照推到公式敲了出来 然后我在一旁算了算感觉暴力必T 然后想到学长们屡试不爽的方法 没错 就是表。。。 我接手敲表 敲了一半Ns突然说C题他测了好几组 感觉一直是输出1 秒敲 六目一对 提交 1Y 当时激动的差点叫出来 现在想想 也是感拼 据Ns说对面山大正式队比赛结束了还在推公式
默默膜拜下 实话说 这题A的很看脸。。。。
C
n个数 问是否存在m(1<=m<=n)个数的和能被n整出 恒存在 后来跟学长们取经说是鸽笼定理 将n个数对n取余 如果存在一个余数为n 则该数为解 若均不为0 必能取出m个数的余数相加得n 即这m个数的和恰为n的倍数
双1Y 斗志更烈了 凭借多年锻炼的手速 火速敲完D 第三个1Y
D
给出一组数列 110100100010000......规律可想而知 然后给出一个k 问第k个数是1还是0 1的位置有1 2 4 7 11 16按这个以an=n等差数列为间隔的规律 很容易打出来这个数组 然后直接输出相应位置的数 听一些大牛队伍说 这题正规解法是找规律 列公式 带入求解 (刚刚试了试还真列出来了!好开心) 如果把数列每项减1 可以得到0 1 3 6 10 15(以1为公差的等差数列的和) 然后就能得到公式 1+n*(n-1)/2=k 只要k满足这个公式 k位置便为1 化简 n^2+n-(k-1)*2=0
得出n=(-1±sqrt(1+8*(k-1)))/2 可知只要1+8*(k-1)可开根 且跟为奇数 则k位置为1 代码更简短
之后就是漫长的卡题了 我卡A Ns卡E A题思路公式已经十分清楚了 百分百确定是在输出的格式上 交了n发wa 主要在负根输出正负号上还有小数的输出 格式坑 ym那个A出 甚至1Y的巨巨们
A
一元二次方程 输出格式很恶心。。。 思路很赤裸 判断Δ输出一个实根 两个实根 或者两个负根 坐等加省赛题 不A了不舒服。。。
Ns的E题我也瞅了瞅 消注释 好像结束后也没几个队伍A掉 可能各种多重注释换行之类的卡住了 后来看某大的两个巨巨议论说要注意字符串中的注释 不能删。,。坐等加题
总体来说热身赛状态很不错 最后三个1Y排在银牌区17名 只能说凑合吧。。还是太弱 期间主机连线掉了一次 也是醉了。。不过还好是热身赛 及早发现问题
晚上吃饭(鸡腿都没了╭(°A°`)╮) 然后坐等xh老师跟zxw老师来开了个小会 突然发现光顾着做题 忘记刷服务器了。。果然还是太年轻 还好xiao爷来分享了他的战绩 能跑8000w次/s 已经预料到了一些题可能TLE。。。之后跟他们出去散了散步 不得不说山科周末晚上人真少。。还是自己家比较舒坦 毕竟有挂念 咳咳。。。某人非要我尝崂山可乐 真心没找到 等你下次给我带了
晚上奋战到半夜 跟Ns睡的 咳咳。。。。很单纯的睡觉
第二天一大早就被闹铃吵醒 被这床板硌的背疼。。可能换地方睡觉不习惯吧
七点领了餐券去吃饭 再次谢谢xh老师的x牛!!还有x力架外加山科某志愿者妹纸的明信片(每人都有份) 字很好看(比我好。。。
)
终于到战场了 漫长十分钟后 试题袋抛了过来 看着倒计时一秒秒划过 这种感觉也蛮爽的
00:00 Yf火速拆开信笺 注意 是真的 拆!。。。那叫一个兴奋 拿过来题心脏还扑通扑通的 不过后来反思发现 这是个大忌 做什么都还是平常心最好
跟往常一样 我ABCD NsEFGH YfIJKL zxw老师前一晚说山科大出了一个签到题 应该是A 果然 A题一看就是赤果果的水题! 放在平时绝对是读题加1Y五分钟不到!没错 我心乱了 也可能是第一次省赛的紧张 也可能是拿到题后激动的心没有马上平静 原本一遍就能读懂的题我读了不下五遍 没错 五遍 而且还读错了!1W 我尽量保持着冷静 我知道 现在Ns跟Yf跟我一样 都在尽量抑制住急躁的心 因为我们都知道 只要一声叹气 可能就会影响整个队伍 整场比赛的状态
这时Ns说G题他有思路了 然后我就到一旁让他敲 后来我实在读不下去A题了 一看榜C题也有很多A的 然后一看断定是博弈 大体一读是石子问题 再一看可以拿1个或者2个 不知道哪来的自信 也就是这股自信 或者更应该说是自负 又一个1W贡献了 后来发现else里忘记换行 改完提交 又一个W!我也不知道哪来的勇气…… 可能是连续W冲昏了头& 到现在还为自己这场比赛的次次鲁莽自责,。。) 立马让开位置 Ns很快敲完G题 1W 这期间我把A题自习读了n遍 发现一开始居然没注意到要按身高排序。。傻逼的以为是已经排过序的 没错
我居然以为身高没用 我也犹豫过 二不拉几的以为是个唬人的东西 结果自己被自己唬了 还唬走了一个团队的气势!!
仔仔细细改成两个成员的结构体 排序累加 输出 2Y 这是我第一次省赛的最大的疤痕 我的自负拖累了这个团队 深深地向我至亲的两个队友Jxn Lyf道歉 原本应该很快1Y的一道题
A
n个人 按身高排序后按1 2 1 2 1 2 报数 报1的是红队成员2是蓝队 问哪队成员总体重最大
之后我接着研究B题 Yf说J题有思路 果断让位置给他敲 提交 1W 让人气愤的是刚交上裁判就发布题目修正 范围10^1000印刷成了101000。。。喵了个咪!也怪当时没一起看看题 说不准就会猜到。。。我果断跟Ns说 大数上Java 三下五除二写完提交 2Y
J
男女组团参加舞会 一男配一女 问能否恰巧分为11个队伍 输入男生数量a 女生数量b 判断a==b? && a%11==0 赛后跟队友讨论 想到可以用字符串输入 然后按位对11取模 新技能get√
接着看B题 读完后发现前一阵做过类似的买卖问题 那题比这题还要复杂 是模拟拍卖流程 然后按那个思路来 用链表做 结果提交1T……立马想到用数组来优化 这时Ns说 C题他发现除了1 2 其余都是对手赢 对视两秒钟 决定再用三张脸拼一次。。飞速写完代码 提交 3Y 可惜我已经没有前一天那种兴奋了 剩下的只有悔恨。。。
C
取石子 一个或者两个 但只能取相邻的 石子成环排列 也就是首位也是相连的 但若去第2颗 1跟3仍不相邻 Yf后来说以前做过类似的博弈 不过当时的题是不成环的 那题取走链中央一颗(石子数为奇时)或两颗(石子数为偶时) 两边 成对称 所以始终是先手赢 而这题因为成环 取走头或者尾部石子后就成链式的了 所以除了1跟2其余都是后手赢
比赛中感觉我们队伍做不错的一点就是每次提交一道题 不等出结果 先接着敲其他题 既缓冲了紧张感 也节省了时间
我接着敲B题 敲到一半发现了那一致命错误 多组输入的while里少写了‘~‘ 循环根本停不下来!代码改都改了 索性改完他 测了几组样例 果断提交 2Y。见到YES后我第一反应不是松了口气 心里的愧疚迟迟不能消散 我知道这种情绪会影响继续出题 强制压下去静下心来继续看题
B
小模拟 先输入字符 b为出价 q输出当前出价中仅出现过一次的价格中最低价 c为取消某次出价 看一些大神说用set很快A了出来。觉得应该补补STL了 我是做了一个升序链表 超时后用数组标记某价格出现次数 链表中仅保留出现过一次的价格 然后遍历链表输出
后来斟酌一下 感觉也就G跟H题能出了 题目很简短 大体一读发现两题极为相似 G是求立方数 H是平方数 三人一致认为解出平方数也就解出立方数了 然后我就开始研究平方数 刚开始思路有问题 都以为打表打出所有平方数然后不断遍历 后来我想到热身赛的鸽笼那题 感觉可以用当时相似的思路 把每个数拆分(赛后才知道这叫分解质因子……Out了) 当时没想先用素数筛筛素数 直接暴力把每个数中的平方数剔除 然后用数组标记非平方数出现次数 然后相乘求组合 代码越改越乱 以至后面G题也没能A出(原因之一) WA到丧失信心的时候。。。
终于见绿了……5Y
H
给出数组 问存在多少(ai,aj)满足ai*aj为平方数 比赛用的山寨版分解质因子A的……现在明白了 用素数筛才是分解质因子的正道。赛后又把素数筛温习了下 也会了个新技能——分解质因子
由于H题方法不正 再加G题数据卡的死 写G题要么WA要么TLE 不过还是坚持写到比赛结束……最后几分钟还交了一发……WA 期间Ns看懂了L题 可惜时间不够用了 赛后问学长说是强连通……shenmegui 只怪自己太弱。。挺佩服Ns的 没接触过 然后自己慢慢摸索着写 我比较缺乏这种探索精神 向Ns学习
第一次省赛就这样结束了 36名 不满意 你说我蔫了。。可能有点吧。不过更多的是在自我反省。出来见一下世面确实能成长学习很多 次次的失利 也更能让我稳当下来 ABC三次的次次WA 次次的乌龙 还是内心不够强大 而且太过自负 否则绝对不会五题垫底…… 是该收收心了 扎扎实实 稳稳当当的 加深算法数据结构知识 不会的立马学 不能一拖再拖 欲戴王冠 必受其重!
这次比赛的流水账 就这么告一段落吧 不过我的ACM之旅才刚刚开始 但我知道 时间不多了 说点题外话 一直很感激xh老师引导我进入SDUTACM这个大家庭 那晚上的记忆很清晰 我徘徊在ACM跟软件开发之间 也很感激cg老师的理解 不过当时确实太幼稚 还以为可以一心二用 同时搞ACM跟软件开发 正如xh老师所说 做一件事就要全身心投入 否则绝对不会有成果 而且也是对队友、ACM大家庭还有我自己的不尊重 这样对于队友非常不公平 当时我还不太理解 单纯地以为两边都能顾忌 参加几个月ACM后 尤其是在寒假集训后 我才慢慢认识到
这是一条漫长的路 你没有闲暇去观赏沿途的风景 更别提还妄想同时踏在ACM跟开发两条大道上 这条路是孤独的 努不努力拼不拼由你自己决定 但又不孤独 因为有数不胜数的人跟你走在同样的道路上 而且有很多人更为奋力地在狂奔 稍一歇息 就会被千军万马踩过 加油吧 程序猿 总有一天能拼出自己的光彩!
最后 很感谢某人不断的鼓励与支持 一切尽在不言中?(°?‵?′??)
来年 山师 省赛再决
"浪潮杯"第六届ACM山东省省赛山科场总结
标签:第六届山东省赛 acm 编程竞赛 省赛总结 c++
原文地址:http://blog.csdn.net/challengerrumble/article/details/46399993