2011年珠海赛(校赛热身赛)
Status
|
ID
|
Title
|
Accepted
|
Submissions
|
---|---|---|---|---|
1000 | Problem A Quadratic Sum | 182 | 214 | |
1001 | Problem B Manhattan | 158 | 263 | |
1002 | Problem C Unlosing Ranger V.S. Darkdeath Evilman | 11 | 70 | |
1003 | Problem D Palindrome | 9 | 42 | |
1004 | Problem E Divisibility | 92 | 208 | |
1005 | Problem F Greedy Snake | 86 | 242 | |
1006 | Problem G Simple Tetris | 1 | 25 | |
1007 | Problem H Rolling | 5 | 9 | |
1008 | Problem I Minimal Elements | 21 | 286 | |
1009 | Problem J Ant | 16 | 56 | |
1010 | Problem K Lexicographically Largest Substring | 107 | 127 |
用的题是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