求偏序集中的極大元與極小元

2021-08-01 05:20:51 字數 1261 閱讀 3757

輸入

輸入偏序集

£>,a

中的元素數不超過

20個,分別用單個小寫的英文本母表示。

輸入的第一行給出

a中的各個元素,兩個相鄰的元素之間用逗號隔開。

輸入的第二行給出偏序關係

£,用有序對的形式給出(只給出哈斯圖中的滿足覆蓋的兩個元素形成的有序對),如

,等等,兩個相鄰的有序對之間用逗號隔開。 輸出

輸出a的極小元與極大元。

輸出的第一行給出各個極小元,兩個相鄰元素之間用逗號隔開,輸出的元素要求按照英文本母的自然順序排列輸出。

輸出的第二行給出各個極大元,兩個相鄰元素之間用逗號隔開,輸出的元素要求按照英文本母的自然順序排列輸出。

樣例輸入

a,b,c,d ,

樣例輸出

a,cb,d

#include#include#include#define maxn 1000

#define maxm 10

using namespace std;

char s[maxn]; //儲存字元

char re[maxn]; //儲存關係

char pos[maxm];

int cnt[27][2]; //標記字母再偏序關係中的位置

char maxs[27]; //儲存極大元

char mins[27]; //儲存極大元

void setcnt()

void setoutput()

if (cnt[s[i] - 'a'][0] == 0 && cnt[s[i] - 'a'][1] == 1) maxs[i2++] = s[i];

} }}void output1()

void output2()

int main() //對cnt陣列初始化

scanf("%s", s);

scanf("%s", re);

int l = strlen(re);

int post;

for (int i = 0;i < l;i++)

else if ((re[i] >= 'a'&&re[i] <= 'z')||(re[i]==','&&re[i-1]!='<'))

else if (re[i] == '>')

} setoutput(); //將結果儲存

output1();

output2();

return 0;

}

求偏序集中的極大元與極小元

1.題目描述 成績10 開啟時間 2017年05月16日 星期二 08 00 折扣0.8 折扣時間 2017年06月1日 星期四 23 55 允許遲交 否關閉時間 2017年06月7日 星期三 23 55 輸入 輸入偏序集 a 中的元素數不超過 20個,分別用單個小寫的英文本母表示。輸入的第一行給出...

求偏序集中的極大元與極小元

輸入 輸入偏序集 a 中的元素數不超過 20個,分別用單個小寫的英文本母表示。輸入的第一行給出 a中的各個元素,兩個相鄰的元素之間用逗號隔開。輸入的第二行給出偏序關係 用有序對的形式給出 只給出哈斯圖中的滿足覆蓋的兩個元素形成的有序對 如 等等,兩個相鄰的有序對之間用逗號隔開。輸出 輸出 a的極小元...

最大元最小元上確界 偏序集中的特殊元素

若 x x b x y 則y為b的上界 若 x x b y x 則y為b的下界 令c 則c中最小元就是b上確界 令c 則c中最小元就是b上確界 理解 最大元 x x b x y 由定義知道,x必須是b中的任何的乙個元素,也同時y必須和x有關係,也就是說y必須和b內的任何乙個元素有關係,如果都有x y...