題目:
抖音有n個使用者,有m個關注對(a, b),表示a關注了b。使用者的關注具有傳遞性:假設a關注了b,b關注了c,則認為a間接關注了c。如果乙個使用者被所有其他使用者關注,則認為這個使用者是乙個抖音紅人。要求:輸入n、m的值以及m個關注對,找出一共有多少個抖音紅人。
例:
輸入:
1 2 2 1 2 3
輸出:
解釋:3被2直接關注,被1間接關注。
題目分析:
可以採用乙個n*n的矩陣來記錄各個使用者被其他使用者關注的情況。每讀入乙個關注對(a, b),除了讓a關注b,讓關注a的也關注b,讓關注關注a的也關注b...這個過程可以採用遞迴實現。
**實現:
#include #include using namespace std;
int n;
int m;
vector> guanzhu;
// a關注了b,讓關注a的也關注b
void update(int a, int b) }}
void main()
int a, b;
for (int i = 0; i < m; i++)
// 數總共幾個紅人
int cnt = 0;
for (int i = 0; i < n; i++)
}if (gz)
cnt++;
} cout << cnt << endl;
}
頭條《抖音紅人》筆試題
題目如下 先挖個坑,稍後來寫解題思路。來填坑了 本題採用二維陣列a i j 下表代表使用者i關注了j,陣列的值為1代表該關注關係成立,且a i i 1永遠成立,然後統計被關注的總數,若為n,即是網紅。如下 include using namespace std int main cnt 0,sum ...
2017 08 22 今日頭條筆試題
有乙個值得分享的地方,是x排序之後對應y的問題 我用了乙個很大的陣列,以x為索引,y為陣列值,不需要用到map。其實也是因為我懶不想去學map操作了,下次試試用map。include include include using namespace std int main cin n x.clear...
今日頭條筆試題(一)
一列火車有n個車廂標記為1,2,3,4,5,6 n 現在因為某些原因,需要調整車廂的相對順序 例如需要將車廂順序調整為2,3,1,4,5,6 n 由於車廂龐大,且車廂只能停留在鐵軌上,所以不能隨心所欲的調整相對順序 現在只能利用兩條並行的鐵軌對車廂的順序進行調整 例如原序列為1,2的車廂 車廂1進入...