每个人需要写一份赛后补题及总结的内容。在这个讨论组下接龙。也可以贴一份自己的博文链接,或者luogu日记之类的。 内容应包含:

通过的题的快速题解

不会的题的详细题解

比赛踩的坑 (包含数组开太大,开大小,忘记注释调试代码,以及边界条件没有测试到)

新学到的算法思想技巧总结

4 comments

  • @ 2025-8-16 16:55:29

    赛后总结

    T1-做题

    一开题就下意识觉得应该是二分 对着题硬磕30min开写 写一半发现有点问题,先不管 40min调试半天没调出来 45min神奇的过了示例 想着能过结果数组开小了 爆0...rp++ 也算是吸取教训,基础语法不能丢的同时也要积累经验 主要这次的问题就在于基础不是很牢 还是要加强学习&&训练

    T2-反转字符串

    开题眼前一黑,鉴定为不可做题 看了20min啥都没看出来 赛后才知道就是直接字符串加搜索(分治) 正解代码应如下(忽略所有rp++)

    #include <bits/stdc++.h>//rp++ 
    using namespace std; 
    const int N = 5e5 + 5; 
    const int mod = 1e9 + 7;
    int to[N]; 
    string s;
    void solve(int l, int r, int rev) { if (r + rev == l) return; if (l == r) { if (rev == -1) { if (s[l] >= 'a' && s[l] <= 'z') { cout << (char)(s[l] - 'a' + 'A'); } else { cout << (char)(s[l] - 'A' + 'a'); } } else { cout << s[l]; } return; } for (int i = l;;) {
    
    	if (s[i] == '(' || s[i] == ')') {
    		solve(to[i] - rev, i + rev, rev * -1);
    		i = to[i] + rev;
    	} else {
    		solve(i, i, rev);
    		i += rev;
    	}
    	if (r + rev == i) break;
    }
    } int main() {//rp++
    
    ios::sync_with_stdio(false);
    cin.tie(0);
    int tid;
    cin >> tid;
    cin >> s;
    int v = 0;
    vector<int> b;
    for (int i = 0; i < s.size(); i++) {
    	if (s[i] == '(') {
    		b.push_back(i);
    	} else if (s[i] == ')') {
    		int v = b.back();
    		to[v] = i;
    		to[i] = v;
    		b.pop_back();
    	}
    }
    solve(0, s.size() - 1, 1);
    return 0;
    }//rp++
    

    对字符串内所有的‘(’&&‘)’进行查找 (题目给出s内所有括号配对) 找到之后先利用*-1反转字符串再进行大小写的反转 分治一套带走

    T3-迷宫问题PLUS

    开题马上想到昨天做过的类似题目 原本觉得dfs应该能直接过 结果20min没调好这dfs 赛后补题居然要用八连通 好吧的确是我知识点不牢了继续爆0(???)

    T4-序列

    开题直接愣——这啥啊??求和符号我看不懂啊wk oi模拟偶遇高中数学强如怪物,拼尽全力无法战胜 爆了() 赛后先去wiki复习了一下求和, 补题时听老师讲才反应过来类似“∑∑” 的结构嵌套在C++里就是嵌套for循环 这波主要问题出在对高一数学掌握不牢 补完题还是有种脑子懂了手不会写的感觉 理解题意,下意识知道该怎么写,但就是写不出来

    总结

    c++的基础语法还要巩固 加强做题效率,锻炼思维 做题多一点积累经验 预习高中数学,避免T4那种神人情况再次发生 第一次模拟的话爆0也算是预料之中...

    • @ 2025-8-16 16:27:46

      比赛总结

      第一问 做题

      第一问是个二分题,与做过的题目相似,轻松AC

      第二问 反转字符串

      自我感觉非常难的一道题,通过分治以及使用栈stack(或者动态数组vector)来实现对括号内部元素的处理以及对左右括号的识别,分支算法中的递归参数也十分复杂。

      第三问 迷宫问题plus

      看到迷宫问题还以为是一个简单的深搜题,实际上,此题plus的后缀不是白给的。正常的深搜其实能拿到一小部分分,但是我在做的时候将深搜的一些概念混淆,导致一分未得。而这道题的深搜他需要从一个虚拟的点开始,依次搜索在右上边缘的障碍物,若与左下边缘联通,则输出"No",反之则输出"Yes"。

      第四问 序列

      一开始看到题,就没有看懂。我以为是我高中知识没有怎么预习的缘故。实际上,是浏览器的问题,题目中的公式中两个等号变成了减号。而且这道题本身也不简单。这些导致我没有做出这道题。

      总结

      以后要针对上述问题进行刷题。

    • @ 2025-8-16 16:12:47

      赛后总结

      第一题:做题

      刚看到题目就知道就是用二分答案,只花了25分钟就过了,最后却爆0了原本大样例都过了,没想到是因为min的cnt开小了,也算吃一堑长一智了样例都太有欺骗性了

      第二题:反转字符串

      刚看到题目有字符串就头晕,读完题给我一种很复杂的感觉,现调整一下下一题先,但后面也没接出来肯定不是没想到分治

      第三题:迷宫问题plus

      刚拿到题想着跟昨天做的还有点像,可是dfs一直调不好,老师讲了才知道原来要用八连通!又喜提0分。我就···

      第四题:序列

      这题更是超模,我甚至连题目都看不懂,最后老师讲了思路但也只是脑子听懂手还没懂也就是一道完全背包的省选题 666

      结尾

      在河中的第一次模拟赛也就打完了,除了拿了0分外,更多的是收获了经验:一定要看数据范围和边界!!!

      • @ 2025-8-16 15:37:20

        比赛总结

        1.做题:相当简单的一题,如果边界调对了,十分钟内秒A加测大样例

        2.反转字符串:分治加递归,主要是递归条件不好打,其实我是比赛时被边界和reverse之类的恶搞了,总体比J-T3难度高一点

        3.迷宫搜索plus:刷的题少,没有套路,不过还是找到了正解,但调T2和看T3、T4花太长时间,不到一个小时不够写。考场经验还是不足,有待改进。

        4.序列:一道比较难想的完全背包dp题,没什么好说的,考场一眼没思路就过了,赛后听讲解感觉还行,重点是后缀这个思路相当不好想,将数组弄成单调序列,这玩意赛时我也想到了(不过没啥用)其余的如优化的证明需要用点二次函数的知识(当然非常简单)。

        so——I need:积累经验,稳步提升。

        👍 1
      • 1