天池 在线编程 课程表(拓扑排序 + 回溯)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

总共有n个课程,从0到n-1。
有些课程可能有先决条件,例如,你想修课程0,你必须先修一门课程1,这两门课之间的关系表示为:[0,1]

给定课程的总数和先决条件对的列表,返回你可以得到所有课程的不同方法的数量。

n <= 10样例1
输入:
n = 2
prerequisites = [[1,0]]
输出: 1
说明:
你必须按照0->1的顺序上课。样例2
输入:
n = 2
prerequisites = []
Output: 2
输出:
你可以按0->11->0的顺序上课。

https://tianchi.aliyun.com/oj/286601234951741590/302577566233072416

2. 解题

  • 建图,记录出入度
  • n 比较小,dfs 搜索
class Solution {
public:/*** @param n: an integer, denote the number of courses* @param p: a list of prerequisite pairs* @return: return an integer,denote the number of topologicalsort*/int ans = 0;int topologicalSortNumber(int n, vector<vector<int>> &p) {// Write your code herevector<int> indegree(n, 0);vector<bool> vis(n, false);vector<vector<int>> g(n);for(auto& pi : p){indegree[pi[0]]++;g[pi[1]].push_back(pi[0]);}dfs(g, vis, indegree, 0);return ans;}void dfs(vector<vector<int>> &g, vector<bool>& vis, vector<int> &indegree, int count){if(count == g.size()){ans++;return;}for(int i = 0; i < g.size(); i++){if(vis[i]) continue;if(indegree[i]==0){vis[i] = true;for(auto nt : g[i])indegree[nt]--;dfs(g, vis, indegree, count+1);for(auto nt : g[i])indegree[nt]++;vis[i] = false;}}}
};

2490ms C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472953.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

fence机制 linux_Linux ha fence设备测试

另外&#xff0c;在配置RHCS5.3时&#xff0c;Fence设备只ping通还不行&#xff0c;还必须经过测试&#xff0c;我在网上找了一篇IPMI的文章&#xff0c;现粘贴如下&#xff1a;What is IPMI?Intelligent Platform Management Interface[edit]AdvantagesLow cost.Available on…

Apache2.4 与 PHP 5.5 64位版的安装配置

我的环境&#xff1a;windows7 旗舰版 64位 首先下载相关文件&#xff1a; php 5.5.0 windows 64版 http://windows.php.net/download/#php-5.5 &#xff08;选择 64位的下载&#xff09; apache2.4 压缩版下载 http://www.apachelounge.com/download/VC11/ 下载版本一定要对应…

java 父子级json组装不用递归_2020面试阿里Java研发岗题库总结,想虐面试官不能错过的面试宝典...

前言:虽然天猫&#xff0c;蚂蚁金&#xff0c;菜鸟都归属阿里旗下&#xff0c;但每个面试官问的问题都不一样&#xff0c;相同点主要在流程方面。面试开始会让自我介绍&#xff0c;主要业务架构和技术架构两部分。业务架构一般不会深究&#xff0c;但要面试官听明白&#xff0c…

LeetCode 1748. 唯一元素的和

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 nums 。 数组中唯一元素是那些只出现 恰好一次 的元素。 请你返回 nums 中唯一元素的 和 。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3,2] 输出&#xff1a;4 解释&#xff1a;唯一元素为 [1,3] &#xff0c;和为 4…

朵唯机器人怎么连网_平遥古城推出机器人导游 可伴游还可骑行

近日&#xff0c;一组集景点讲解、语音互动等多种功能于一身的机器人亮相平遥古城&#xff0c;引发游客关注。2月27日&#xff0c;北京青年报记者从景区旅游公司处了解到&#xff0c;这批机器人导游已经上岗5天&#xff0c;主要是为了填补下午5点人工导游下班后&#xff0c;古城…

【DFS】HDU 1364 POJ 1071 Illusive Chase

数据水了。。。 不知道正解是什么 将TOM放在一个0上经过输入的 1 2 R 这样走 还能在图上则这个点可行&#xff08;走的过程中不能走出图&#xff09; 求有几个0 可行 直接dfs 完全没有别的思路 题目要求必须 走 A - B 步 所以在走A步不能遇到 1 #include <cstdio> #inc…

python类中变量作用域_Python中的变量作用域

1、块级作用域 1 if 1 1:2 name "lzl" 3 4 print(name) //输出lzl5 6 7 for i in range(10):8 age i9 10 print(age) //输出9 在Java/C#中&#xff0c;执行上面的代码会提示name&#xff0c;age没有定义&#xff0c;而在Python中可以执行成功&#xff0c;这是因为在…

评论数据获取、词频统计、词云图

# coding: utf-8 # In[2]: import urllib.request import re import requests import time import random import json # 设置请求头 headers (User-Agent, Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537…

pytorch 语义分割loss_vedaseg:基于pytorch的开源语义分割工具库,更多模型支持,更易拓展...

加入极市专业CV交流群&#xff0c;与6000来自腾讯&#xff0c;华为&#xff0c;百度&#xff0c;北大&#xff0c;清华&#xff0c;中科院等名企名校视觉开发者互动交流&#xff01;更有机会与李开复老师等大牛群内互动&#xff01;同时提供每月大咖直播分享、真实项目需求对接…

LeetCode 1749. 任意子数组和的绝对值的最大值(前缀和)

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 nums 。 一个子数组 [numsl, numsl1, ..., numsr-1, numsr] 的 和的绝对值 为 abs(numsl numsl1 ... numsr-1 numsr) 。 请你找出 nums 中 和的绝对值 最大的任意子数组&#xff08;可能为空&#xff09;&#xff0c;并返…

字符设备驱动0:一个简单但完整的字符设备驱动程序

参考&#xff1a; linux设备驱动程序之简单字符设备驱动 【很详细,必看】http://www.cnblogs.com/geneil/archive/2011/12/03/2272869.html //在驱动入口函数中&#xff0c;使用register_chrdev添加字符设备驱动&#xff1a;#include <linux/module.h> #include <linu…

同一个项目相互调接口_408计算机网络D3-第二章:网络体系结构与参考模型(上)分层结构-协议-接口-服务...

网络体系结构是从功能上描述计算机网络结构。计算机网络体系结构简称网络体系结构是分层结构&#xff1b;是计算机网络的各层及其协议的集合。每层遵循某个/些网络协议以完成本层功能。分层结构-协议-接口-服务首先就是为什么要分层发送文件前要完成的工作发起通信的计算机必须…

自动摘要

#!/user/bin/python # coding:utf-8 import nltk import numpy import jieba import codecs import os class SummaryTxt: def __init__(self,stopwordspath): # 单词数量 self.N 100 # 单词间的距离 self.CLUSTER_THRESHOLD 5 …

专家 安全_船级社专家组到公司开展安全生产标准化考核

12月17日&#xff0c;船级社专家组一行到公司开展安全生产标准化考核工作&#xff0c;公司党委书记、执行董事曲贝贝&#xff0c;执行总经理(主持生产经营工作)陈飞&#xff0c;执行总经理、安全总监李中华&#xff0c;党委副书记、纪委书记、工会主席刘小丽&#xff0c;总经济…

LeetCode 1750. 删除字符串两端相同字符后的最短长度(双指针)

文章目录1. 题目2. 解题322 / 1676&#xff0c; 19.2%1166 / 8426&#xff0c;13.8%https://leetcode-cn.com/contest/biweekly-contest-45/ranking/ 前两题&#xff1a; LeetCode 1748. 唯一元素的和 LeetCode 1749. 任意子数组和的绝对值的最大值&#xff08;前缀和&#xf…

分词、语法树

######Jieba分词###### import jieba string如果一个文法存在某个句子对应两棵不同的语法树&#xff0c;则称这个文法是二义的 print(string) seg_listjieba.cut(string,cut_allFalse,HMMTrue) seg_str .join(seg_list) ######PCFG句法分析###### from nltk.parse import stan…

Android开发学习笔记-自定义组合控件

为了能让代码能够更多的复用&#xff0c;故使用组合控件。下面是我正在写的项目中用到的方法。 1、先写要组合的一些需要的控件&#xff0c;将其封装到一个布局xml布局文件中。 <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:an…

python基础实例 韦玮 pdf_Python基础实例教程(微课版)

第 1章 初识Python 1 1.1 快速了解Python 2 1.1.1 Python的起源与背景 2 1.1.2 Python的功能 3 1.1.3 Python的优势与特色 4 1.2 在Windows下搭建Python开发环境 6 1.2.1 操作系统的选择 6 1.2.2 在Windows下安装Python 7 1.3 在Linux下搭建Python开发环境 1…

测试是否支持跨域_浅谈跨域威胁与安全

WEB前端中最常见的两种安全风险&#xff0c;XSS与CSRF&#xff0c;XSS&#xff0c;即跨站脚本攻击、CSRF即跨站请求伪造,两者属于跨域安全攻击&#xff0c;对于常见的XSS以及CSRF在此不多谈论&#xff0c;仅谈论一些不太常见的跨域技术以及安全威胁。一、 域域&#xff0c;即域…

LeetCode 1752. 检查数组是否经排序和轮转得到

文章目录1. 题目2. 解题1. 题目 给你一个数组 nums 。 nums 的源数组中&#xff0c;所有元素与 nums 相同&#xff0c;但按非递减顺序排列。 如果 nums 能够由源数组轮转若干位置&#xff08;包括 0 个位置&#xff09;得到&#xff0c;则返回 true &#xff1b;否则&#xf…