OD 算法題 B卷【服務啟動】

文章目錄

  • 服務啟動

服務啟動

  • 有若干連續編號的服務(編號從0開始),服務間有依賴關系,啟動一個指定的服務,請判斷該服務是否可以成功啟動,并輸出依賴的前置服務編號;
  • 依賴關系是可以傳遞的,如2->1, 1->0, 則2依賴1和0;

輸入描述:
第一行輸入N,為服務的總個數,N在【1,5000】;
第二行輸入M, 為指定啟動的服務編號,M在【0, 5000);
接下來的N行為依賴關系,第一行為服務0的依賴,第二行為服務1的依賴,依次類推,格式:依賴服務個數,依賴編號,依賴編號…

輸出描述:
如果服務無法啟動(循環依賴)或者其他異常,輸出-1
若可以啟動,則按照編號從小到大順序輸出依賴的前置服務;若無依賴,則輸出null

示例1
輸入:
4
2
0
1,0
1,1
2,0,1
輸出:
0,1

示例2
輸入:
2
1
1,1
1,0
輸出:
-1

python實現

  • DFS, 遞歸函數棧

# 輸入
n = int(input().strip())
specific_m = int(input().strip())
# 依賴關系
depend_dict = {}
for i in range(n):depend_dict[i] = list(map(int, input().strip().split(",")))# 依賴的列表
depend_list = []def dfs(m):global depend_dict, depend_list, specific_mcur_data = depend_dict.get(m)if  cur_data[0] == 0:  # 沒有依賴關系,可以啟動returnelse:for i in range(1, len(cur_data)):# 處理循環依賴if cur_data[i] == specific_m or cur_data[i] in depend_list:raise ValueError("循環依賴,無法啟動")# 存儲依賴depend_list.append(cur_data[i])# 遞歸調用dfs(cur_data[i])# 調用dfs
try:if n < 1 or n > 5000:raise ValueError("n 超出范圍")elif specific_m < 0 or n >= 5000:raise ValueError("m 超出范圍")dfs(specific_m)if depend_list:  # 可以啟動,并有前置依賴服務depend_list.sort()print(",".join([str(i) for i in depend_list]))else:print("null")
except ValueError:print(-1)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/82492.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/82492.shtml
英文地址,請注明出處:http://en.pswp.cn/web/82492.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

StarRocks與Apache Iceberg:構建高效湖倉一體的實時分析平臺

## 引言&#xff1a;數據湖的挑戰與演進 在數據驅動的時代&#xff0c;企業數據湖需要同時滿足海量存儲、高性能查詢、多引擎協作和實時更新等復雜需求。傳統基于 Hive 的數據湖方案面臨元數據管理低效、缺乏 ACID 事務支持、查詢性能瓶頸等問題。在此背景下&#xff0c;**Sta…

Kafka 單機部署啟動教程(適用于 Spark + Hadoop 環境)

&#x1f9ed; Kafka 單機部署啟動教程&#xff08;適用于 Spark Hadoop 環境&#xff09; &#x1f4e6; 一、Kafka 版本選擇 推薦使用 Kafka 2.13-2.8.1&#xff08;Scala 2.13&#xff0c;穩定適配 Spark 3.1.2 和 Hadoop 3.1.1&#xff09; 下載地址&#xff08;Apache 官…

C語言數組初始化方法大全(附帶實例)

在 C語言中&#xff0c;數組用于存儲相同類型的多個元素。數組的初始化是一個重要的概念&#xff0c;它允許我們在聲明數組的同時為其賦初值。 這篇文章&#xff0c;我將為大家詳細介紹 C語言中初始化數組的多種方法&#xff0c;以及一些需要注意的細節。 數組初始化的基本語…

RAMSUN分享全新超值型MM32F0050系列MCU

憑借全國產化的供應鏈優勢和可靠的國產高端工藝制程&#xff0c;靈動微再次推出全新超值型MM32F0050系列微控制器單元&#xff08;MCU&#xff09;&#xff0c;將超值型MCU推向新的高度。 MM32F0050系列MCU配備了72MHz的Arm Cortex-M0內核&#xff0c;提供64KB的Flash存儲和8K…

CMS32M65xx/67xx系列CoreMark跑分測試

CMS32M65xx/67xx系列CoreMark跑分測試 1、參考資料準備 1.1、STM32官方跑分鏈接 1.2、官網鏈接 官方移植文檔&#xff0c;如下所示&#xff0c;點擊紅框處-移植文檔: A new whitepaper and video explain how to port CoreMark-Pro to bare-metal 1.3、測試軟件git下載鏈接 …

LeetCode 139. 單詞拆分(Word Break) - 動態規劃深度解析

文章目錄 問題描述動態規劃解法解法核心思路完整代碼實現關鍵代碼解析1. 數據結構初始化2. 動態規劃數組3. 核心循環邏輯4. 子串區間理解(關鍵)示例演算復雜度分析算法優化點總結本文詳細解析LeetCode 139題"單詞拆分"的動態規劃解法,涵蓋核心思路、代碼實現、區間…

獲客方式有哪些拓展方向?

品牌在面臨增長瓶頸時&#xff0c;如何拓展獲客方式會是一個首要考慮的問題。有些時候企業會將獲客渠道想得很復雜&#xff0c;其實仔細數下來&#xff0c;我們可以拓展的方向仍舊是根據渠道來溯源&#xff0c;因此相對固定。 一、跟隨流行趨勢 在數字營銷領域&#xff0c;緊跟…

bug:undefined is not iterable (cannot read property Symbol(Symbol.iterator))

1.如圖 2.分析 關鍵報錯提示&#xff1a; undefined is not iterable (cannot read property Symbol(Symbol.iterator)) 直譯&#xff1a; undefined是不可迭代的&#xff08;不能讀取屬性Symbol(Symbol.iterator)&#xff09; 理解&#xff1a; 有一個值、不存在&#x…

【筆記】PyCharm 使用問題反饋與官方進展速覽

#工作記錄 https://youtrack.jetbrains.com/issue/IJPL-190308 【筆記】記一次PyCharm的問題反饋_the polyglot context is using an implementation th-CSDN博客 【筆記】與PyCharm官方溝通解決開發環境問題-CSDN博客 與 JetBrains 官方溝通記錄&#xff08;PyCharm 相關問題…

VSCode 工作區配置文件通用模板(CMake + Ninja + MinGW/GCC 編譯器 的 C++ 或 Qt 項目)

下面是一個通用模板&#xff0c;適用于大多數使用 VSCode CMake Ninja MinGW/GCC 編譯器 的 C 或 Qt 項目。你可以將這個 .vscode 文件夾復制到你的項目根目錄下&#xff0c;稍作路徑調整即可使用。 &#x1f4c1; .vscode/ 目錄結構&#xff08;通用模板&#xff09; .vs…

棧-20.有效的括號-力扣(LeetCode)

一、題目解析 對于這個字符串需要左右括號匹配&#xff0c;并且是以正確的順序 二、算法原理 解法1.圖棧 解法2.用else if代替圖棧 正常做法&#xff1a;對于三種左括號直接進棧((,[,{進棧)&#xff0c;然后判斷與下一個括號是否匹配&#xff0c;匹配則出棧&#xff0c;不匹…

將音頻數據累積到緩沖區,達到閾值時觸發處理

實現了音頻處理中的 AEC&#xff08;聲學回聲消除&#xff09;和 AES&#xff08;音頻增強&#xff09;功能&#xff0c;其核心功能是&#xff1a; 數據緩沖管理&#xff1a;將輸入的麥克風和揚聲器音頻數據塊累積到緩沖區中塊處理機制&#xff1a;當緩沖區填滿預設大小&#…

fastadmin+workman環境搭建

一、出現錯誤 從git拉取到本地在配置網址登錄后出現 unserialize(): Error at offset 0 of 17039 bytes 參考&#xff1a;https://blog.csdn.net/yqwwj001/article/details/88688675 找到 \thinkphp\library\think\cache\driver\Flie.php 中的 $content substr($content, …

若依+vue2實現模擬登錄

1、背景 第三方通過鏈接訪問若依項目&#xff0c;該鏈接通過攜帶唯一標識符&#xff1a;phone&#xff08;手機號&#xff09;&#xff0c;項目通過手機號查詢本項目數據庫人員信息實現模擬登錄。 2、實現 2.1. 前端實現 2.1.1 創建專用模擬登錄頁面PhoneLogin.vue <te…

【2025】使用docker compose一鍵部署項目到服務器(4)

目錄&#x1f4bb; 前言一、部署準備二、本地idea配置docker和docker compose執行器三、編寫docker-compose.yml文件四、執行啟動 前言 該篇文章主要是使用idea通過docker-compose.yml構建容器集合并且進行統一管理更新 該專欄主要為介紹通過docker compose實現容器編排部署 &…

Linux Windows之wsl安裝使用簡介

參考資料 如何使用 WSL 在 Windows 上安裝 Linuxwindows11 安裝WSL2全流程舊版 WSL 的手動安裝步驟 目錄 一. 前期準備1.1 確認windows的版本1.2 開啟Linux子系統的支持1.2.1 圖形化方式1.2.2 命令行方式 1.3 安裝wsl軟件1.4 安裝Linux分發版 二. 基本配置2.1 Windows Termina…

matlab模糊控制實現路徑規劃

路徑規劃是機器人和自動駕駛系統中的重要問題之一&#xff0c;它涉及確定如何在給定環境中找到最優路徑以達到特定目標。模糊控制是一種有效的控制方法&#xff0c;可以應用于路徑規劃問題。 路徑規劃算法的目標是在避免障礙物的情況下&#xff0c;找到機器人或車輛從起點到終…

OpenHarmony 5.0橫豎屏界面適配

目錄 一.背景 二.修改位置 三.參考文檔 一.背景 由于需要一套代碼適配橫屏和豎屏設備,所以有些數值的大小可能在豎屏上面適配,在橫屏上面不那么適配了,所以需要橫屏特殊的數值大小(例如:寬高) 二.修改位置 在resources資源文件中新建橫屏適配的文件夾,然后新建自己需…

AlphaFold3服務器安裝與使用(非docker)(1)

1. 服務器顯卡驅動準備 這部分我會詳細記錄一下我踩過的坑及怎樣拯救的&#xff0c;原諒啰嗦啦 ^_^ 1.1 服務器舊配置 1.1.1 nvidia-smi [xxxxxxlocalhost ~]# nvidia-smi Thu May 29 20:54:00 2025 -------------------------------------------------------------…

Java異步編程難題拆解技術

目錄 ?編輯 異步編程的核心概念 Java異步編程的主要實現方式 異步編程的常見難題 解決異步編程難題的策略 性能優化與調試技巧 實際案例分析 未來發展趨勢 異步編程的核心概念 同步與異步的區別阻塞與非阻塞的差異Java異步編程的常見場景&#xff08;如網絡請求、文件…