C++算法题:蒜头君的互粉攻略 - 人气指数计算
#include
using namespace std;
const int N = 1010;
int n, m; int h[N], e[N], ne[N], idx; int in[N], out[N]; //入度和出度 int res[N]; //存储每个人的人气指数
void add(int a, int b) { e[idx] = b, ne[idx] = h[a], h[a] = idx ++ ; }
int main() { cin >> n >> m;
while (m -- )
{
int a, b;
cin >> a >> b;
add(b, a); //注意这里是b指向a,表示a是b的粉丝
in[a] ++ ;
out[b] ++ ;
}
for (int i = 0; i < n; i ++ )
res[i] = in[i] - out[i]; //计算每个人的人气指数
for (int i = 0; i < n; i ++ )
{
for (int j = h[i]; ~j; j = ne[j])
{
int k = e[j];
res[k] += res[i]; //统计每个人的粉丝数
}
}
for (int i = 0; i < n; i ++ ) cout << res[i] << endl;
return 0;
}
原文地址: https://www.cveoy.top/t/topic/nP5W 著作权归作者所有。请勿转载和采集!