您现在的位置是:主页 > news > 自媒体app推广是做什么的/网站关键字优化价格

自媒体app推广是做什么的/网站关键字优化价格

admin2025/4/21 8:57:58news

简介自媒体app推广是做什么的,网站关键字优化价格,郑州工商注册,专业网站建设模板下载题意 众所周知,证券经纪人对于市场传闻十分敏感。现在你被雇佣去开发一种在经纪人之间传播虚假信息的模式,使得你的雇主在市场中获得特殊的战略优势。为了获得最大的效果,你必须在尽可能快的时间内传播谣言。 不幸的是,证券经纪人…

自媒体app推广是做什么的,网站关键字优化价格,郑州工商注册,专业网站建设模板下载题意 众所周知,证券经纪人对于市场传闻十分敏感。现在你被雇佣去开发一种在经纪人之间传播虚假信息的模式,使得你的雇主在市场中获得特殊的战略优势。为了获得最大的效果,你必须在尽可能快的时间内传播谣言。 不幸的是,证券经纪人…

题意

众所周知,证券经纪人对于市场传闻十分敏感。现在你被雇佣去开发一种在经纪人之间传播虚假信息的模式,使得你的雇主在市场中获得特殊的战略优势。为了获得最大的效果,你必须在尽可能快的时间内传播谣言。
不幸的是,证券经纪人只信赖来自他们认为是“可靠来源”的消息。这意味着你必须在开始传播流言时考虑他们之间的关系。当流言开始传播时,某个经纪人需要一定的时间将其传递给他的所有同事。
你的任务是编写一个程序,输出需要选择哪个证券经纪人作为流言传播的起点,以及这个流言传播完整个经纪人社群所需的时间。所需的时间指的是最后一个经纪人接受到消息所花费的时间。
Input
你的程序将输入多个不同股票经纪人群体的数据。每一组的第一行是股票经纪人的人数。接下来一行包括每个经纪人可以联系的人的数量,这些人是谁,和他传递信息给每一个人所花的时间。每一行格式如下:最开始是可以联系的人的数目 n,然后是 n对整数,一对整数代表了他与一个联系人的情况。每一对整数列出的第1个数字是联系人编号(例如:”1”是指社群中的1号联系人),第2个数字是指把消息传给那个联系人需要花几分钟。没有其他的标点符号或空格。
每个人的编号为i(1 ≤ i ≤ n, n为一个社群中股票经纪人的总数量),传递信息的时间为t分钟(1 ≤ t ≤ 10),可以与之联系的人的数量为x (0 ≤ x ≤ n-1),股票经纪人的数量为n(1 ≤ n ≤ 100) 。输入的终止条件是股票经纪人社群含有0个人。
Output
对于每一组数据,你的程序必须输出一行整数,包含能使消息传递得最快的那个联系人,以及给定的消息从这个人传递到最后一个人所花费的时间,以整数分钟来度量。
你的程序可能会收到某种排除了一些人在外的联系网络,如有些人可能无法被任何人联系到。如果你的程序检测到这种不连通的网络,只需输出“disjoint”。请注意,如果消息既能从A传递到B,又能从B传递到A,则两个传递消息的时间不一定相同。

思路

数据量比较小
可以采用floyd算法求最短路

Floyd 弗洛伊德算法
无法解决负边权
最短路径问题—Floyd算法详解

int d[maxn][maxn];  
// e=(u,v) 不存在时设为INF, d[i][i] = 0;
int n;void warshall_floyd(){
    for( int k = 1; k <= n; k++ )
        for( int i = 1; i <= n; i++ )
            for( int j = 1; j <= n; j++ )
                d[i][j] = min( d[i][j], d[i][k] + d[k][j] );
}

AC代码

#include <iostream>
#include <algorithm>
#include <cstdio>
#define mst(a) memset(a, 0, sizeof(a));using namespace std;const int INF = 0x3f3f3f3f;
const int maxn = 100+5;
int d[maxn][maxn];
int n, mmin;void init(){mmin = INF;for( int i = 0; i < maxn; i++ )for( int j = 0; j < maxn; j++ )d[i][j] = i == j ? 0 : INF;
}void floyd(){for( int k = 1; k <= n; k++ )for( int i = 1; i <= n; i++ )for( int j = 1; j <= n; j++ )d[i][j] = min( d[i][j], d[i][k]+d[k][j] );int mi = INF, ma, pos;for(int i = 1; i <= n; i++){ma = -1;for(int j = 1; j <= n; j++)if(i != j && ma < d[i][j])ma = d[i][j];if(ma < mi){mi = ma;pos = i;}}if( mi < INF )  printf("%d %d\n",pos, mi);else  printf("disjoint\n");
}int main()
{int t, u, v;while( ~scanf("%d",&n) && n ){init();for( int i = 1; i <= n; i++ ){scanf("%d",&t);for( int j = 0; j < t; j++ ){scanf("%d%d",&u, &v);d[i][u] = v;}}floyd();}return 0;
}

转载于:https://www.cnblogs.com/JinxiSui/p/9740576.html