中山大学校赛热身赛

来源:互联网 发布:入门吉他推荐 知乎 编辑:程序博客网 时间:2024/04/27 16:10

2011年珠海赛(校赛热身赛)

Status
ID
Title
Accepted
Submissions
1000Problem A Quadratic Sum1822141001Problem B Manhattan158263 1002Problem C Unlosing Ranger V.S. Darkdeath Evilman1170 1003Problem D Palindrome9421004Problem E Divisibility922081005Problem F Greedy Snake86242 1006Problem G Simple Tetris125 1007Problem H Rolling591008Problem I Minimal Elements21286 1009Problem J Ant16561010Problem K Lexicographically Largest Substring107127


用的题是2011年珠海赛(金山杯)

最终结果 Rank:43/192 AC:5

虽然I题久攻两个半小时不下

不过通过这次比赛在积分上超过了其他一年级的队伍 还是比较开心的~


赛前敲好了一堆头文件还有学会不久的用来测试的文件输入输出

比赛开始后刚拿到题 CC就说A题是水题然后他上去敲 题意就说求所给各个数的平方之和

在敲的过程中我看了下数据范围 确认不超int 测试样例过后交上去1A 果然是签到题


刷新排名后 我看了下提交 发现有好几队除了A还做出了B

于是看B题 题意是按指定规则求出所给N点中最短的两点距离 两个for循环遍历所有组合 两个abs算出距离 算一次更新一次答案搞定

确认了下有无特殊情况 过样例后交上去1A


继续根据提交情况看起K题

弄懂题意后想到了好几种解法 与队友讨论会否超时

用哪种解法意见不一

于是先敲输入 他们看E题

再敲解法的共同部分的时候想到了更好的解法

找字符串中最大的字母 将其下标储存在一个数组内

遍历这个数组 用strcmp比较前一个和后一个子串 更新答案

这样只需要遍历一次原串再遍历最大字母数次比较最大字母数减一次

测试样例和一些特殊数据无误后交上去1A


搞定K题后看情况 决定做E F题

跟队友说了一下E题的具体意思 觉得E题跟数学有关 于是我去看F题

F题题意是给定矩阵大小和每个元素值 求给定起点和终点间可通路(非零)之和的最大值 (走过位置的值都变0)

第一反应想到dp和dfs 细想应该是用dfs 但是走过的位置值变0让一般的dfs思路行不通(会影响到其他分支)

想了好一阵子 注意到用临时变量的话每次返回都可以回到递归前的状态 于是在dfs函数形参加上一个临时矩阵用来储存传进来的矩阵状态 再加上一个临时变量用于储存当前路上元素值的和

这样当搜到尽头返回时 可以回到当时的状态 如果搜到重点 则判断当前和是否大于ans 更新ans

dfs完后直接输出ans 样例数据测试无误

以防万一检查题目的输出要求 发现题目指定了若无法从起点到达终点则输出-1

一开始考虑将输出改成若ans==0输出-1否则输出ans

细想了一下 当起点与终点相邻时 ans==0 但可以从起点到达终点 此时应该输出0

再对输出进行修改 若ans==0 将ans赋为-1 写一个find函数检查起点周围是否为终点 若是 ans++

再输出ans

叫FF想了一些数据 都没出错 交上去1A


交完F题不久 CC突然说找到了解E题的方法 于是他上去敲

for (int i = 2; i <= base - 1; i++){    if ( (base - 1) % i == 0)    {        x = i;        break;    }}for (int i = 2; i <= base + 1; i++){    if ( (base + 1) % i == 0)    {        y = i;        break;    }}

据说是突然间想到的 问了一下思路 检查了一下题目细节 测试了3进制和4进制 交上去1A 也是非常的神奇



剩下两个半小时 CC和FF都尝试过K题

生成了9999个测试数据 过了一下程序 感觉会TLE (在这个时候还发现了之前以为答案最多只有7是错的orz)

交上去果然TLE(。

过了一段时间换了种思路写交上去不是TLE是WA orz


比赛结束后想找题解 发现搜不到orz

这次比赛发现使用文件输入输出来测试和写个小程序生成随机测试数据在某些题目是很有用的~

图论和搜索刚学了没几天就用上了 用得少 敲的时候比较慢 在一些地方也修改了不少次 也没能第一时间想出改造dfs函数达到想要的效果

归根到底 还是要学和练orz

0 0