華為OD機(jī)試-計(jì)算快遞業(yè)務(wù)主站點(diǎn)
題目描述:
快遞業(yè)務(wù)范圍有N個(gè)站點(diǎn),A站點(diǎn)與B站點(diǎn)可以中轉(zhuǎn)快遞,則認(rèn)為A-B站可達(dá),如果A-B可達(dá),B-C可達(dá),則A-C達(dá)?,F(xiàn)在給N個(gè)站點(diǎn)編號(hào)0、1、...n-1,用s[i][j] 表示i-j是否可達(dá),s[i][j] =1表示i-j可達(dá),s[i][j] =0表示i-j不可達(dá)?,F(xiàn)用二維數(shù)組給定N個(gè)站點(diǎn)的可達(dá)關(guān)系,請(qǐng)計(jì)算至少選擇從幾個(gè)主站點(diǎn)出發(fā),才能可達(dá)所有站點(diǎn)(覆蓋所有站點(diǎn)業(yè))
說明: s[i][j] 與s [j][i] 取值相同
輸入描述:
第一行輸入為N,N表示站點(diǎn)個(gè)數(shù)之后N行表示站點(diǎn)之間的可達(dá)關(guān)系,第i行第i個(gè)數(shù)值表示編號(hào)為i和之間是否可達(dá)輸出描述:
輸出站點(diǎn)個(gè)數(shù),表示至少需要多少個(gè)主站點(diǎn)
補(bǔ)充說明:
1<N<10000
示例1
輸入:
4
1 1 1 1
1 1 1 0
1 1 1 0
1 0 0 1
輸出:
1
說明:
選擇0號(hào)站點(diǎn)作為主站點(diǎn),0站點(diǎn)可達(dá)其他所有站點(diǎn),所以至少選擇1個(gè)站點(diǎn)作為主站才能覆蓋所有站點(diǎn)業(yè)務(wù)。
示例2
輸入:
4
1 1 0 0
1 1 0 0
0 0 1 0
0 0 0 1
輸出:
3
說明:
選擇0號(hào)站點(diǎn)可以覆蓋0、1站點(diǎn),選擇2號(hào)站點(diǎn)可以覆蓋2號(hào)站點(diǎn),選擇3號(hào)站點(diǎn)可以覆蓋3號(hào)站點(diǎn),所以至少選擇3個(gè)站點(diǎn)作為主站才能覆蓋所有站點(diǎn)業(yè)務(wù)。
————————————————
版權(quán)聲明:本文為CSDN博主「MISAYAONE」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://renjie.blog.csdn.net/article/details/128418102
Java 實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/128418102
Python實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/128418116
C++ 實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/128418033
JavaScript、C語言版本持續(xù)更新中