HDU 4857 逃生(拓撲排序)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 拓撲排序

一.定義

??? 對一個有向無環圖(Directed Acyclic Graph簡稱DAG)G進行拓撲排序,是將G中所有頂點排成一個線性序列,使得圖中任意一對頂點u和v,若<u,v> ∈E(G),則u在線性序列中出現在v之前。

?? 通常,這樣的線性序列稱為滿足拓撲次序(Topological Order)的序列,簡稱拓撲序列。

?? 注意:

?? 1)只有有向無環圖才存在拓撲序列;

?? 2)對于一個DAG,可能存在多個拓撲序列(此題已經規定了數字的優先級,所以答案唯一);

?

二.拓撲序列算法思想

?(1)從有向圖中選取一個沒有前驅(即入度為0)的頂點,并輸出之;

?(2)從有向圖中刪去此頂點以及所有以它為尾的弧;

重復上述兩步,直至圖空,或者圖不空但找不到無前驅的頂點為止。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <queue>
#include<functional>
#define MAXSIZE 100005
using namespace std;vector<int>G[MAXSIZE];
priority_queue<int ,vector<int>, less<int> > q;
int in[MAXSIZE];int main()
{int T,n,m,a,b;scanf("%d",&T);while(T--){memset(in,0,sizeof(in));vector<int> ans;for(int i=0;i<MAXSIZE;i++)G[i].clear();scanf("%d%d",&n,&m);while(m--){scanf("%d%d",&a,&b);in[a]++;G[b].push_back(a);}for(int i=1;i<=n;i++)if(!in[i]) q.push(i);while(!q.empty()){int u=q.top();ans.push_back(u);q.pop();int len=G[u].size();for(int i=0;i<len;i++){int v=G[u][i];in[v]--;if(!in[v])q.push(v);}}int len=ans.size();for(int i=len-1;i>=0;i--)printf("%d%c",ans[i],i==0?'\n':' ');}return 0;
}
View Code

?

轉載于:https://www.cnblogs.com/alan-W/p/6640008.html

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

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

相關文章

關于deepin系統安裝design compiler的問題解答

關于deepin系統安裝design compiler的問題解答 Design?Compiler是Synopsys綜合軟件的核心產品。它提供約束驅動時序最優化&#xff0c;并支持眾多的設計類型&#xff0c;把設計者的HDL描述綜合成與工藝相關的門級設計&#xff1b;它能夠從速度、面積和功耗等方面來優化組合電…

iOS 數據持久化-- FMDB

一、簡介 1.什么是FMDB FMDB是iOS平臺的SQLite數據庫框架 FMDB以OC的方式封裝了SQLite的C語言API 2.FMDB的優點 使用起來更加面向對象&#xff0c;省去了很多麻煩、冗余的C語言代碼 對比蘋果自帶的Core Data框架&#xff0c;更加輕量級和靈活 提供了多線程安全的數據庫操作方法…

【機器學習】交叉驗證篩選參數K值和weight

交叉驗證 導包 import numpy as npfrom sklearn.neighbors import KNeighborsClassifierfrom sklearn import datasets#model_selection &#xff1a;模型選擇 # cross_val_score: 交叉 &#xff0c;validation&#xff1a;驗證&#xff08;測試&#xff09; #交叉驗證 from s…

jqGrid列的統計

$("#List").jqGrid({ url: "${pageContext.request.contextPath}/cbfx/getCbhzList.do", datatype: "json", mtype: GET, colNames:["成本類別","費用","去年同期費用","備注"], colMod…

手機只能簽榮耀!最忠誠代言人胡歌喊你去天貓超品日

在你心中&#xff0c;男神胡歌是什么樣子&#xff1f;“御劍乘風來&#xff0c;除魔天地間。”也許是《仙劍奇俠傳》里飛揚跋扈、青春不羈的俠客李逍遙。“遍識天下英雄路&#xff0c;俯首江左有梅郎。”也許是《瑯铘榜》中才智冠天下&#xff0c;遠在江湖卻名動帝輦的麒麟才子…

歐式距離與曼哈頓距離

歐式距離&#xff0c;其實就是應用勾股定理計算兩個點的直線距離 二維空間的公式 其中&#xff0c; 為點與點之間的歐氏距離&#xff1b;為點到原點的歐氏距離。 三維空間的公式 n維空間的公式 曼哈頓距離&#xff0c;就是表示兩個點在標準坐標系上的絕對軸距之和&#xff1a…

在maven pom.xml中加載不同的properties ,如localhost 和 dev master等jdbc.properties 中的鏈接不一樣...

【參考】&#xff1a;maven pom.xml加載不同properties配置[轉] 首先 看看效果&#xff1a; 點開我們項目中的Maven projects 后&#xff0c;會發現右側 我們profile有個可勾選選項。默認勾選localhost。localhost對應項目啟動后&#xff0c;會加載配置左側localhost文件夾下面…

4.8-全棧Java筆記:包機制

包機制是java中管理類的重要手段。 開發中&#xff0c;我們會遇到大量同名的類&#xff0c;通過包我們很容易對解決類重名的問題&#xff0c;也可以實現對類的有效管理。 包對于類&#xff0c;相當于&#xff0c;文件夾對于文件的作用。package我們通過package實現對類的管理&a…

python安裝以及版本檢測

Windows 安裝 Python 3 目前Python有兩個大版本&#xff0c;分別是 2.X 和 3.X &#xff0c;我們的教程基于最新版本 3.6.1 首先我們需要獲取Python的安裝包&#xff0c;可以從官網獲取&#xff0c;如果你因為沒有VPN工具而無法訪問官網的話&#xff0c;我已經將它放在網盤了&…

【機器學習】梯度下降原理

import numpy as np import matplotlib.pyplot as plt %matplotlib inlinef lambda x :(x-3)**22.5*x-7.5 f2 lambda x :-(x-3)**22.5*x-7.5求解導數 導數為0 取最小值 x np.linspace(-2,5,100) y f(x) plt.plot(x,y)梯度下降求最小值 #導數函數 d lambda x:2*(x-3)*12.…

C語言的面向對象設計-對X264/FFMPEG架構探討

本文貢獻給ZSVC開源社區&#xff08;https://sourceforge.net/projects/zsvc/&#xff09;&#xff0c;他們是來自于中國各高校的年輕學子&#xff0c;是滿懷激情與夢想的人&#xff0c;他們將用自己的勤勞與智慧在世界開源軟件領域為中國留下腳步&#xff0c;該社區提供大量視…

linux gtest安裝

1. 安裝cmake, 具體步驟這里不詳說。 2. 下載源碼&#xff1a;https://codeload.github.com/google/googletest/zip/release-1.8.0 3. 解壓源碼&#xff1a;unzip googletest-release-1.8.0.zip 4. 進入源碼目錄&#xff1a;cd googletest-release-1.8.0 5. 創建并進入目錄buil…

基于物聯網的智能垃圾桶設計

前言 目前我國各城市包括首都正在深入開展爭創國家衛生城市活動&#xff0c;這是全國愛國衛生運動委員會辦公室評選命名的國家級衛生優秀城市的最高榮譽&#xff0c;是一個城市綜合素質的重要標志。沈陽市正在深入開展創建國家衛生城市和建設國家健康城市(以下簡稱“雙城雙創”…

學習實踐 - 收藏集 - 掘金

2道面試題&#xff1a;輸入URL按回車&HTTP2 - 掘金通過幾輪面試&#xff0c;我發現真正那種問答的技術面&#xff0c;寫一堆項目真不如去刷技術文章作用大&#xff0c;因此刷了一段時間的博客和掘金&#xff0c;整理下曾經被問到的2道面試題 從瀏覽器輸入URL按回車到頁面顯…

【機器學習】自己手寫實現線性回歸,梯度下降 原理

導包 import numpy as npimport matplotlib.pyplot as plt %matplotlib inlinefrom sklearn.linear_model import LinearRegression創建數據 X np.linspace(2,10,20).reshape(-1,1)# f(x) wx b y np.random.randint(1,6,size 1)*X np.random.randint(-5,5,size 1)# 噪…

跨站的藝術-XSS Fuzzing 的技巧

作者 | 張祖優(Fooying) 騰訊云 云鼎實驗室 對于XSS的漏洞挖掘過程&#xff0c;其實就是一個使用Payload不斷測試和調整再測試的過程&#xff0c;這個過程我們把它叫做Fuzzing&#xff1b;同樣是Fuzzing&#xff0c;有些人挖洞比較高效&#xff0c;有些人卻不那么容易挖出漏洞…

H.264/AVC視頻壓縮編碼標準的新進展

H .264/AVC是由ISO/IEC與ITU-T組成的聯合視頻組(JVT)制定的新一代視頻壓縮編碼標準&#xff0c;于2003年5月完成制訂。相對于先前的標準&#xff0c;H.264/AVC無論在壓縮效率、還是在網絡適應性方面都有明顯的提高&#xff0c;因此&#xff0c;業界普遍預測其將在未來的視頻應用…

python注釋及語句分類

注釋 注釋就是&#xff1a;注解&#xff0c;解釋。 主要用于在代碼中給代碼標識出相關的文字提示(提高代碼的可讀性) 或 調試程序。Python中注釋分為兩類&#xff1a; 1.單行注釋 &#xff1a; 單行注釋以 # 號開頭&#xff0c;在當前行內&#xff0c;# 號后面的內容就是注釋…

【機器學習】回歸誤差:MSE、RMSE、MAE、R2、Adjusted R2 +方差、協方差、標準差(標準偏差/均方差)、均方誤差、均方根誤差(標準誤差)、均方根解釋

我們通常采用MSE、RMSE、MAE、R2來評價回歸預測算法。 1、均方誤差&#xff1a;MSE&#xff08;Mean Squared Error&#xff09; 其中&#xff0c;為測試集上真實值-預測值。 def rms(y_test, y): return sp.mean((y_test - y) ** 2) 2、均方根誤差&#xff1a;RMSE&#xff…

大院大所合作對接會7天倒計時!亮點搶先看

為什么80%的碼農都做不了架構師&#xff1f;>>> 推動產業特色發展&#xff0c;提升企業自主創新能力&#xff0c;加快成果轉化落地&#xff0c;繼江蘇發展大會之后&#xff0c;圍繞“聚力創新”&#xff0c;7月5日-6日&#xff0c;中國江蘇大院大所合作對接會暨第六…