??C++、java、python、C代碼:?
【華為OD】C卷真題200分:服務(wù)器廣播 C/C++代碼實現(xiàn)[思路+代碼]-CSDN博客
【華為OD】C卷真題200分:服務(wù)器廣播 Java代碼實現(xiàn)[思路+代碼]-CSDN博客
【華為OD】C卷真題200分:服務(wù)器廣播 python代碼實現(xiàn)[思路+代碼]-CSDN博客
【華為OD】C卷真題200分:服務(wù)器廣播 C語言代碼實現(xiàn)[思路+代碼]-CSDN博客?
題目描述:
服務(wù)器連接方式包括直接相連,間接連接。A和B直接連接,B和C直接連接,則A和C間接連接。直接連接和間接連接都可以發(fā)送廣播。
給出一個N*N數(shù)組,代表N個服務(wù)器,matrix[i][j] == 1,則代表i和j直接連接;不等于1時,代表i和j不直接連接。matrix[i][i] == 1,即自己和自己直接連接。matrix[i][j] == matrix[j][i]。
計算初始需要給幾臺服務(wù)器廣播,才可以使每個服務(wù)器都收到廣播。
輸入描述:
輸入為N行,每行有N個數(shù)字,為0或1,由空格分隔,構(gòu)成N*N的數(shù)組,N的范圍為 1<=N<=40
輸出描述:
輸出一個數(shù)字,為需要廣播的服務(wù)器的數(shù)量
示例1輸入輸出示例僅供調(diào)試,后臺判題數(shù)據(jù)一般不包含示例
輸入
1 0 0 0 1 0 0 0 1
輸出
3
說明
3臺服務(wù)器互不連接,所以需要分別廣播這3臺服務(wù)器
示例2輸入輸出示例僅供調(diào)試,后臺判題數(shù)據(jù)一般不包含示例
輸入
1 1 1 1
輸出
1
說明
2臺服務(wù)器相互連接,所以只需要廣播其中一臺服務(wù)器
? ? ?879 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?
? ? ? ? ? ? ? +---+ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? 3 ? ? ? ? ? ?| ? | ? ? ? ++ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? + ? ? ? +---| ??
? | ? ? ? ? ? | ? | 3 ? ? ?+ ? ? ? ? ? ? ? ?6 ? ? ? ? ? ? ? + ?| ? + ? | ? ? ? ?+
? | ? ? ?+ ? ? | ? | ? ? ? + ? ? ? ? + ? ? ? ? ? ? ? ? ? ? ?+ ? ?| ?+ ? | ? ? ? +
? | ? ? ?+ ? ?| ? +---+ ? ?+ ? ? ? ?+ ? ? ? ?+++++ ? ? ? ? ?+ ? + ?+ ? | ? ? ? ?+
? | ? ? ?+ ? ?| + ? ? ?| ? + ? +----+ ? ? ? ?| ? | ? ? ? ? ?+ ? + ?+ ? | ? ? ? ?+
? | ? ? ?+ ?3 | + ? ? ?| ? + ? + ? ?+ ? ? ?2 | ? | ? ? 2 ? ?+ ? + ?+ ? | ? ? ? ?+
? | ? ? ?+ ? ?| + ? ? ?| ? + ? + ? ?+ ? ? ? ?| ? | ? ? ? ? ?+ ? + ?+ ? | ? ? ? ?+
? | ? ? ?+---+ + ? ? | ? ?| ?| ? ?+ ? ?----+ ? | ? +---+ ? ?| ?| ?+ ? | ? ? ? ? +
? | ? ? ?| ? ? + ? ? | ? ?| ?| ? ?+ ? ?| ? ? ? | ? | ? | ? ?| ?| ?+ ? | ? ? ? ? +
? | ? ?1 | ? ? + ? ? | 8 ?| ?| ? ?+ ?1 | ? | ? ?| 1 | ? | 1 | ? | ?+ ? | ? ? ? ?+
? | ? ? ?| ? ? + ? ? | ? ?| ?| ? ?+ ? ?| ? | ? ?| ? | ? | ? | ? | ?+ ? | ? ? ? ?+
? | ?+---+ ? ? + ? ? +---+ ? | ? ?++---+ ? ?++ ? +---+ ? +---+ ? | ?+ ? | ? ? ? ?+
? | ?| ? ? ? ? + ? ? ? ? | ? | ? ?| ? ? ? ? ++ ? ? ? ? ? ? ?| ? | ?|+ ? | ? ? ? ?+
? |0 | ? ? ? ? + ? ? ? ? | 0 | ?0 | ? ? ? ? ++ ? ? ? ? ? ? ?| 0 | ?|+ ? | ? ? ? ?+
? | ?| ? ? ? ? + ? ? ? ? | ? | ? ?| ? ? ? ? ++ ? ? ? ? ? ? ?| ? | ?|+ ? | ? ? ? ?+
? +---+ ? ? ? ? + ? ? ? ? ?+-------+ ? ? ? ? ? ? ? ? ? ? ? +---+| +|+ ? | ? ? ? ?+
?? ??? ??? ??? ?+?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?+ ? | ? ? ? ?+
? ? 0 ? 1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ?10 ?11 ?12 + v:?? ?w ?u m?? ?u 1 0 2 4
?
題目解析:
? ? ? ? 使用遞歸的方式來實現(xiàn)即可文章來源:http://www.zghlxwxcb.cn/news/detail-843216.html
代碼實現(xiàn):
const readline = async () => (await iter.next()).value;
const rl = require("readline").createInterface({ input: process.stdin });
const iter = rl[Symbol.asyncIterator]();
function func(_list, idx, data) {
_list[idx] = 0;
for (let i = 0; i < data.length; i++) {
if (_list[i] !== -1 || i === idx) {
continue;
}
if (data[i][idx] === 1 || data[idx][i] === 1) {
func(_list, i, data);
}
}
}
async function main() {
const data = [];
let line = await readline();
while (line) {
try {
data.push(line.split(' ').map(Number));
line = await readline();
} catch (error) {
break;
}
}
let cnt = 0;
const _list = Array(data.length).fill(-1);
for (let i = 0; i < data.length; i++) {
if (_list[i] === -1) {
cnt++;
func(_list, i, data);
}
}
console.log(cnt);
rl.close();
}
main();
文章來源地址http://www.zghlxwxcb.cn/news/detail-843216.html
到了這里,關(guān)于【華為OD】C卷真題200分:服務(wù)器廣播 JavaScript代碼實現(xiàn)[思路+代碼]的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!