给定一个无向图 G=(V,E),每个节点 i 都与“Ci”个对象相关联。在每一步,对于每个节点 i,Ci 对象在 i 的邻居之间平均分配。经过K步,输出对象最多的前5个节点的对象个数。
这是一步中发生的一个示例:
A 的对象被 B 和 C 平均分配。B
的对象被 A 和 C 平均分配。C
的对象被 A 和 B 平均分配。
一些约束:|V|<10^5, |E|<2*10^5, K<10^7, Ci<1000
我目前的想法是:用一个矩阵来表示每一步的转换。这个问题转化为矩阵幂的计算。但是考虑到|V|,这个解决方案太慢了。可以是 10^5。
有没有更快的方法来做到这一点?