【CSP】202009-3点亮数字人生(拓扑排序)

该博客介绍了如何利用C++解决202009-3的电路连接问题,通过将问题转化为有向图,并应用拓扑排序来解决。博主提供了详细代码并附有关键点注释。
摘要由CSDN通过智能技术生成

在这里插入图片描述

本题并不难,主要在于将电路连接图抽象为有向图,然后进行简单拓扑排序即可,下文给出代码在已在几个点给出注释

/*
 * @Author: csc
 * @Date: 2020-12-14 17:29:08
 * @LastEditTime: 2020-12-19 19:10:17
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \code\csp\2009_3.cpp
 */
#include <bits/stdc++.h>
const int N = 1e4 + 100;
const int M = 1000;

using namespace std;

int m, n, s, k;
vector<int> tin[N], tout[N];// 存输入输出数据
typedef struct Node
{
   
    int v;
    Node(int vv) : v(vv) {
   }
} node;
vector<node> ad[M];//邻接表存储
int in[M], w[M];// in 存入度   w存出度
bool vis[M];//  标志结点是否遍历到  在cal函数中使用到
map<int, string> device;//采用map函数映射每个结点对应的器件
void init()
{
   
    fill(vis, vis + M, false);
    memset(in, 0, sizeof(in));
    for (int i = 0; i < N; ++i)
    {
   
        tin[i].clear();
        tout[i].clear();
    }
    for (int i = 0; i < M; ++i)
    {
   
        ad[i].clear();
    }
    device.clear();
}
void _init()
{
   
    fill(vis, vis 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值