變數排序
【問題描述】
把不同的變數進行公升序排序用小於操作符命令實現的。例如由a < b, b < c 和 c < d 可以得到公升序序列a, b, c, d 。
在本題中,你將得到若干條小於操作符命令,形如 a < b 的格式,請你確定利用這些命令,能否得到乙個唯一的公升序序列。
【輸入格式】
第1行為整數n,m,n(2 <= n <= 26)表示參與排序的是前n個大寫字母,m表示給出命令的條數。
【輸出格式】
輸出一行:
如果根據輸入能得到唯一的公升序序列,則輸出「sorted sequence determined after *** relations: yyy…y. 」
如果不能得到唯一的公升序序列,則輸出「sorted sequence cannot be determined. 」
如果不能得到公升序序列,則輸出「inconsistency found after *** relations. 」
上面的資訊中 *** 是乙個整數,是表示至多根據前***條資訊就可以得出該結論。 yyy…y表示得到的公升序序列的大寫字母串。
【輸入樣例】
【樣例1】
4 6
a < b
a < c
b < c
c < d
b < d
a < b
【樣例2】
3 2
a < b
b < a
【樣例3】
26 1
a < z
【輸出樣例】
【樣例1】
sorted sequence determined after 4 relations: abcd.
【樣例2】
inconsistency found after 2 relations.
【樣例3】
sorted sequence cannot be determined.
【分析】
這道題雖然給了一堆條件,卻讓我們判斷前i個是否可行,於是判斷時我們也只需要用前i個條件。在輸入時判斷即可。
【輸入框架】
void init()
}if(ok)
}
而具體到如何檢查,即check函式,我們可以由題給條件想到dag圖(排序很特殊)與拓撲序列。其要判斷的 唯一性/是否存在性 也與拓撲排序相符。注意判斷的幾個條件在題中比較關鍵。
完整**:
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
const
int maxn=10005;
int n,m,first[maxn],x,y,np=0,hash[30][30],mark[30],rd[30],t[30];
int cnt=1;
char w[maxn][30],yy;
vector
topo;
struct edge
e[maxn<<1];
void addedge(int u,int v)
; first[u]=np;
}int check(int rr)
//找有效點個數
topo.clear();
int ret=1;
queue
q;for(int i=1;i<=n;i++)
}while(!q.empty())
int i=q.front();q.pop();
for(int p=first[i];p;p=e[p].next)}}
if(topo.size()//出現了環
if(ret==2) return ret;//如果有多條直接return 即當前條件不足以判斷
if(topo.size()==n)//符合條件
printf(".");
return ret=1;
} if(topo.size()return ret=2;//補充條件:如果是唯一的 但是卻沒有達到n個
}void init()
memcpy(t,rd,sizeof(t));
if(check(i)!=2)
}if(ok)
}int main()
C 學習心路歷程
這裡只記錄c 的特色地方,想來本科專攻c 跟圖形程式設計,真心沒想到半路殺出來個unity還特麼用了c 所以嘛,最近惡補這方面的東西,把跟c 相似的地方看看就好,這裡把c 的好東東都記錄下,有一些還挺有逼格的說,希望能有幸成為高手!1 params關鍵字 本關鍵字在於可變長引數的利用,比如 stat...
指標(心路歷程)
2019 3 10 許多初學c 語言指標的人剛開始會理不清思路,即使有教材書在比上也會一頭霧水,我也是剛入門,給一下我的想法。指標,簡單來說就是乙個存放位址的變數。你可一聯想門牌號和房子的關係。c語言的指標,主要兩種運算子。和 可以簡單理解為取值,而 可以理解為取址。例如char cp ch cp存...
心路歷程 20161118
171219我王老五又回來水題了!由於種種原因 比如不想參加本班只有四人參加的月考 本wc都去不了的蒟蒻回來準備,省選了,爭取拿到胸牌233.昨天因為不出去培訓,還被教練教育了一番quq 20天 期間單個的晚上刷水題 各種演算法的基本思想和裸的 實現 不追求比較深的內容。難度什麼的不好說 比如kmp...