ACM生涯里首次参加现场赛 心情蛮激动的 可能之前参加过省赛外加一堆多校网赛练习赛 当初那种紧张感完全没有了 除了坐卧铺的时候。。。。
第一次卧铺卧这么远。。去的时候晚上没睡好(周围全是呼噜声) 一直处在半梦半醒 早晨六点多他们都起来了我才好好睡了一会
十五号下午一小时动车到济南 然后转普快 十六号下午一点多到了长春 天气不错 不过我穿的略厚 蛮热
下车后Xiaohong老师立马带队坐公交到东师报道 满满的惊叹声……比赛场地是东师体育馆……没法比啊……几乎大过弱校任何一个建筑。。。
志愿者是蓝色长袖 期待满满地进去报道领参赛服 然而…… 这是参赛服么。。。赤果果的校服啊。。。TOT 不过多吐槽了。。校服加上一张参赛贴纸。。。我真的不吐槽…………
之后去入住酒店 良心住宿环境! 紫荆花 二人标间 好福利 主要还有浴缸 好好泡了泡 缓解了一些火车上的疲劳 另外早餐也很赞 中西混合自助 赞! 感觉吃多少都不够 现在想想还馋
入住后下午逛了逛东师校园 然后就去吃晚饭了 晚上早点冲了澡睡觉
第二天上午坐公交去吉大南校 。。专车(吉南 <-> 吉北) 两个学长接我们去逛了校园和实验室 最深刻的印象就是 国家xxxxxx实验室/试验中心/xxxx。。。 不多说了- -、
回来后Xiaohong老师带着去吃了东北菜 好吃!
下午热身赛。。。A题随机数测评测姬 然后就这么被刷爆了。。。 刚开始我们敲的B 楠神看到的 第一发他题意理解错 转告给我后我一听 这水的没话说啊 然后就WA了…… 后来改了改又一发= = 然后楠神仔细读了读 明白了 转告给我 然而我理解错他的意思 又一发= =。。。 后来仔细对了对题意 确保无误了 A了。。。弱的锅……
B题就是给n个数 找出对所有区间[i,j] (i<=j) gcd能得到的数的种数
由于数范围很小 dp即可 假设遍历到第k个数 一个数组dp[]存之前出现过的数 一个数组pre存[i,k-1](i <= k-1) 另一个数组tmp存[i,k](i <= k)
每次初始化tmp为0 pre中加上k 遍历1~上限 如果 pre中有 表示存在某个区间[i,k-1]gcd出该数 将该数与第k个数gcd 看dp跟tmp中有无 都没就说明新数 ans++ 每次跑完把tmp更新到dp 和 pre中
A题是个测服务器的 有26种可能的代码 但只有一种正确 然而即使跑出来我们也不会A 读错题了 没明白两组间的换行在输出中保不保留(应该保留 然而未保留。。)
C题理解是最短路中的最大权减去必经点的权 最后交的 也没跑出来。。对于热身赛结束后评测姬立即关掉 弱表示很愤懑= =、 好歹让我们知道个结果安安心。。
一个气球退场。。好像是铁= =第一个题太冲动了。。。
晚上吃的食堂 也蛮不错 中餐自助 比省赛好多了 然后去买了点回来坐车吃的东西 18号比完下午就要抓紧跑路了。。
第二天早照例中西自助 幸福的回忆。。。
正式赛 没有昨天呢么喧哗了 每个队伍都挺安静 战争前的安宁吧算是 13道题 有点出人意料。。很难见到M题 以前一般最多12道 我们的分配就是我前4 楠神中5 LiBiao后4
倒计时结束 比赛开始 拆题 读题。。。差点摔题……看B题比较友善 就开读 结果越读越发现很不简单 刚开始很单纯的以为是公式题。。后来发现规律不明显 就开始打表 然后研究。。 此时楠神读出F题可做 跟我说了说题意
F 给一个序列有n个数 问能否删掉一个让这个序列变成上升或下降序列 通俗易懂 接来立马敲 信誓旦旦的交了个1WA……
我只考虑了删当前点 没考虑删前一点。。。总之就是没考虑全面……之后测了多组错误样例 测出了一组就该改交 测出一组改改交。。这就生加了80分钟罚时……TOT 对不起群众
最后发现真正错误原因 此时楠神看出一个凸包模板题 上手敲板子 1A! 楠神板子就是硬! 之后我改了改F 5A……80分钟罚时导致我们只是暂时铜
楠神跟我们说J题题意让我们研究 说他发现了个大水题 就上手敲 J是个异或的题 我跟LiBiao就在那扣 不一会他敲完了 又一个1A! 太硬了!
后来我们一块研究J 我看实在没好算法就去看A 想出来个做法写来写去就是不对 一直到结束3发都是WA。。。
后来我们J实在想不出法子 爆一个吧/。。。 然后。。Yes……吐血的数据= =不过也是运气 正解是化二进制建字典树
之后看H题挺多 仔细读了读是感觉是dp或者背包。。dp方法做了两发TLE 背包最后交了发 最后还是被我们自己理论叉掉了……
赛后问Xiao爷他们 是dp 不过思路要正才行。。
H 让建一棵n个节点的树 每个节点会有一个度 对于度为x(1 <= x <= n-1)的节点有一个价值f(x) 问能建出的最大价值为多少
原本想用背包 结果一直控制不好节点数和度数 因为要求满足最终 节点数 == n 度数 == 2*(n-1) 据说有背包做出来的 不知道怎么做的 等航电或者PKU放出题来去做做看
至于动规 dp[i][j]表示节点数为i的树 树根度为j时的最大价值 转移方程为
j == 1 dp[i][j] = max(dp[i-1][k] - f(k) + f(k+1) + f(1))(k < i-1)
i > j > 1 dp[i][j] = dp[i-1][j-1] - f(j-1)+f(j)
证明转移公式正确性:
当构造节点数为i的树时 其实就是在i-1个节点的树上加一个叶子 由于价值只与度有关 所以可以选择更改i-1个节点的树上度为1~i-1的某个节点的度 即为在改点后加一叶子 此时不会影响其他节点度 所以dp中每次取最大 即可保证转移后仍未最大
这样不断转移取最优解 最后在dp[n][1~n-1]中找最大值即为答案
至于A 一眼瞅去感觉是个背包 后来先化简p让他变成小背包 后来发现这样想不对。。然后。。就没然后了
说是用搜的。。还没想好怎么搜
B题数论 也算是需要找规律吧。。。还没找到……
就这样 第一次区域赛打铜结束 不很满意 至少没达到我心里的理想成绩 这两场我做题不算很严谨 导致许多罚时 需要检讨 从做ACM以来就这样 一阵阵的 刚开始不严谨 后来尽量1A 再后来又开始往返循环…… 可能与做的题目质量升高也有关系 不过最主要还是自己的原因 以后不能这么冲动 慢慢把眼光放全面 尽最大可能减少罚时 加油!
后面就要继续投入训练和学习了 这两天落的课也要补补了 算法也该接着啃了 明年再战! 我要拿银!!!(至少