HideCharSkinCapInfo

备战传智蓝桥DAY-1

🎯 今日目标

  • 💻 目标1:完成 10 道 题目。
  • 📚 目标2:复习算法知识点(拓扑排序)。

🕒 学习与练习计划

⏰ 时间段📘 内容🎯 目标
13:30-17:30📝 复习拓扑排序并刷题目恢复状态和学点新东西

完成情况

  • 今日目标完成情况
    • 完成:完成 6 道题目。

    蓝桥云课

    xfxcy

    • 奖金 - 拓扑排序 + dp[不知道]

    洛谷

    • 家谱树 - 拓扑排序(板子)[普及-🟠]

💡 解题思路与总结

题目1.发现环

  • 解题方法:拓扑排序
  • 优化点:从 不会(1/10) 优化到 会(10/10)(具体步骤)。
  • 遇到的问题:不会找自环。
  • 解决方案:看题解有思路,发现只要把所有入度为1(双向建边)的点删去,其余就是环。
cpp
#include<bits/stdc++.h>
#define int long long
#define PII pair<int,int>
#define ULL unsigned long long
#define all(v) v.begin(), v.end()
#define debug(a) cout<<#a<<"="<<a<<endl;
using namespace std;
constexpr int N =  1 * 1e6 + 10,M = 5 * 1e3 + 10,inf = 0x3f3f3f3f;

int n;
int in[N],f[N];
void dfs(int u)
{
    if(in[u] == 1)
    {
        in[u]--;
        in[f[u]] --;
        dfs(f[u]);
    }
}
void solve()
{
    cin >> n;
    for(int i=0;i<n;i++)
    {
        int a,b;
        cin >> a >> b;
        in[a] ++ , in[b] ++;
        f[b] = a;
    }

    for(int i=1;i<=n;i++) dfs(i);
    for(int i=1;i<=n;i++)
    {
        if(in[i] > 1) cout << i << ' ';
    }
}
signed main()
{
    ios::sync_with_stdio(0);cin.tie(nullptr),cout.tie(nullptr);
    int _=1;
    // cin>>_;
    while(_--)
    {
        solve();
    }
    return 0;
}

/**
 *    author: Nijika_jia
 *    created: 2025.02.07 20:53:33
 */

额外收获:

  • 感觉求什么最大(旅游,恋爱),最少(奖金)的题目拓扑排序就是在给dp打辅助,不会dp照样白瞎
  • 高中的记忆开始攻击我,让我想起来等差公式求和

🔧 改进计划

  • 针对今日问题:
    • 📖 复习:巩固未掌握的知识点(如堆(小根堆的优先队列都不会写了)、递归优化,lamda表达式)。
    • 📊 刷题:增加某类题目练习,如图论题或搜索题。
    • 时间管理:减少不必要的时间浪费,限定每题时间。

📖 明日计划

  • 💻 完成 7 道题目,重点攻克 单源最短路 类型题。

📝 附注

  • ✏️ 晚点再让ai做点有用的小项目(图论常常用到的)

🍕封面图

头歌包过教程(对付给看输出的那种实验)
Valaxy v0.28.11 驱动|主题-Yunv0.28.11
本站总访问量
本站访客数 人次
本站已运行0 天0 小时0 分0 秒