谣言传播

博客探讨了如何设计贪婪算法来解决在n个人之间高效传播谣言的问题。每个人掌握不同谣言,通过电子信息传递。算法确保所有人能获取所有谣言,考虑信息发送者包含其已知所有谣言,每次信息只发送给一个人。举例说明,通过比较不同联系人传递信息的时间成本,选择了最佳起始传播者以最小化总时间。
摘要由CSDN通过智能技术生成

有n个⼈,每个⼈都拥有不同的谣⾔。通过发电⼦信息,他们想互相
共享所有的谣言。假定发送者会在信息中包含他已知的所有谣言,⽽且一个信息
只有一个收信⼈。设计一个贪婪算法,保证在每个⼈都能获得所有谣言的条件

假设共有3个联系人,联系人1传递信息给联系人2和3所有的时间分别为4和5;联系人2传送信息给联系人1和3所有的时间分别为2和6;联系人3传送信息给联系人1和2所有的时间均为2,则选择联系人3作为第一个传送谣言的人,可以使谣言传遍所有的人时间最短,为2

#include <iostream>
using namespace std;

const int maxnum = 100;
const int maxint = 999999;



void initation(int dist[maxnum][maxnum], int n) {
   
    for (int i = 1; i <= n; i++) {
   
        for (int j = 1; j <= n; j++) {
   
            dist[i][j] = maxint;
        }
    }
}
void Dijkstra(int n, int v, int dist[maxnum][maxnum], int *prev, int c[maxnum][maxnum])
{
   
    bool s[maxnum];    // 判断是否已存入该点到S集合中
    for (int i = 1; i <= n; ++i)
    {
   
        dist[v][i] = c[v][i];
        s[i] = 0;     // 初始都未用过该点
        if (dist
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值