暑假集训周报2

反思

1.疲惫感呈现跃迁式上升,打字速度比之前快了一点

2.打个人赛一定要把题都看一遍,要勇于暴力,大不了就是尝试错了,排名低了一点,打完也还有时间可以补。

题解

2024 暑假友谊赛 2-CSDN博客

SMU Summer 2024 Contest Round 4-CSDN博客

SMU 2024 年夏季比赛第 5 轮-CSDN博客

河南萌新联赛2024第(一)场-CSDN博客

未解决题目

(为什么要放在这里呢,放题解不会看,写了相当于没写,遇到过的也还是不会,说实话就是懒,不愿意去翻以前的题单)

J最大矩阵匹配————前缀和,动态规划

B 爱探险的朵拉————拓扑排序

思路:

1.通过拓扑序找到环,标记环的长度

2.按照链表的方式搜索,遇环加上该点标记的环的长度

L 图上计数(Hard)————贪心,多重背包,二进制或单调队列优化

Stronger Takahashi————01BFS

题解:SMU 2024 年夏季比赛第 5 轮-CSDN博客

Red Polyomino————枚举+深度优先搜索

Predilection————前缀和+动态规划

Keep Connect————线性dp

CodeForces - 1328E ————dfs序/LCA

AtCoder abc344_f————dp

AtCoder abc216_f————dp加前缀和优化

[NOIP2014]寻找道路————bfs

思路:1.读入数据,并建立正向和反向边。

2.从终点反向BFS,求出所有的②。

3.对每个点判断是否满足①。

4.从起点正向BFS,只经过①点,求出最短路径。

其他总结

1.size()函数的返回类型为unsigned,使用vector或queue等时,尤其需要注意用size()函数时,不能和负数比较大小,不然会发生一些很恶心的错误。

for (int i = 0; i < m; i++) {
        int x;
        cin >> x;
        if (!q.size() || x <= q.top()) q.push(x);
        else g.push(x);
        // cout << q.size() << " " << g.size() << endl;
        while ((int)q.size() - (int)g.size() > 1 && q.size()) {
            // cout << q.top() << '\n';
            g.push(q.top());
            q.pop();
        }
        while ((int)g.size() - (int)q.size() > 1 && g.size()) {
            q.push(g.top());
            g.pop();
        }
        if (i % 2 == 0) {
            // tt++;
            if (i == 1) a[tt++] = x;
            else {
                if (q.size() == g.size()) a[tt++] = (q.top() + g.top()) / 2;
                else if (q.size() > g.size()) a[tt++] = q.top();
                else a[tt++] = g.top();
            }
        }
    }

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值