數軸上有 n 條線段,第 i 條線段的左端點是 a[i],右端點是 b[i]。 bob 發現 1~2n 共 2n 個整數點,每個點都是某條線段的端點。 這些線段有如下兩類特點:
1 x y,表示第 x 條線段和第 y 條線段相交(相交在這裡指至少有乙個公共點)
2 x y,表示第 x 條線段在第 y 條線段的左邊,且它們不相交。 共有 m 個特點,每個特點都是如上兩類之一。
bob 想通過這些特點推理得到每條線段的端點。
第一行兩個正整數 n,m
接下來 m 行,每行三個正整數,描述線段的特點,格式見題目描述
輸出n行,第i行兩個正整數,用空格隔開,分別是a[i]和b[i]可能有多種答案,輸出字典序最小的答案。即先要求a[1]最小,若仍有多解再要求b[1]最小,若仍有多解再要求a[2]最小,若仍有多解再要求b[2]最小,若仍有多解再要求a[3]最小……
如果無解輸出「wrong」(不輸出引號)。
3 21 2 3
2 1 3
1 2對於 30%的資料, 1<=n,m<=103 54 6
對於 60%的資料, 1<=n,m<=1000
對於 100%的資料,1<=n,m<=100000
2018山東冬令營
x與y相交說明a[x]#include#include#include#includeusing namespace std;
typedef long long ll;
const int inf=0x3f3f3f3f;
int n,m,s;
vectorp[200005];
int sum[200005],a[200005],vis[200005];
void topo(){
priority_queue,less>q;
for(int i=1;i<=2*n;i++)
if(sum[i]==0)
q.push(i);
while(!q.empty()){
int t=q.top();
q.pop();
a[t]=s--;
for(int i=0;i
python 拓撲排序 Python 拓撲排序
python 拓撲排序 在圖論中,由乙個有向無環圖的頂點組成的序列,當且僅當滿足下列條件時,稱為該圖的乙個拓撲排序 英語 topological sorting 每個頂點出現且只出現一次 若a在序列中排在b的前面,則在圖中不存在從b到a的路徑。print 拓撲排序結果 g.topologicalso...
python 排序 拓撲排序
在電腦科學領域中,有向圖的拓撲排序是其頂點的先行排序,對於每個從頂點u到頂點v的有向邊uv,在排序的結果中u都在v之前。如果圖是有向無環圖,則拓撲排序是可能的 為什麼不說一定呢?圖論 是組合數學的乙個分支,它和其他分支比如 群論 拓撲學 矩陣論有著密切的關係。圖是圖論的主要研究物件。圖是由若干給定的...
學術篇 2 28測試T2 線段 拓撲排序
題目 思路 看到這種找前後的題目.第一反應就是拓撲排序 每條線段都有左右兩個端點咯,然後就亂搞吧.我們用 i 和 i 分別表示第 i 條線段的左右端點.然後如果 x 在 y 的左邊,那麼 x 一定小於 y 我們就建一條 x y 的邊 如果 x 與 y 相交,那麼一定 x且 y 顯然 我們就分別建 x...