社交網絡圖中結點的“重要性“計算(Dijkstra + SPFA + Floyd + 模板)

題目鏈接:


題目大意:

求一個點到其他所有點的最短距離和,保證圖連通。


解題過程:

剛開始用 Floyd 水過的,后來用換了幾種方法,不錯的模板題,Floyd 的時候,要用 vector 存邊,否則超內存。


題目分析


AC代碼(Dijkstra + SPFA)

#include<bits/stdc++.h>
using namespace std;const int MAX = 11234, INF = 0x3f3f3f3f;vector<int> edges[MAX];
int dist[MAX], book[MAX];void spfa(int s) {memset(dist, INF, sizeof(dist));memset(book, 0, sizeof(book));queue<int> q;q.push(s);book[s] = 1;dist[s] = 0;while (!q.empty()) {int u = q.front();for (int i = 0; i < edges[u].size(); i++) {int v = edges[u][i];if (dist[v] > dist[u] + 1) {dist[v] = dist[u] + 1;if (!book[v]) {q.push(v);book[v] = 1;}}}q.pop();book[u] = 0;}
}void dijkstra(int s) {memset(dist, INF, sizeof(dist));priority_queue<pair<int, int> > q;dist[s] = 0;q.push(make_pair(-dist[s], s));while (!q.empty()) {int u = q.top().second;q.pop();for (int i = 0; i < edges[u].size(); i++) {int v = edges[u][i];if (dist[v] > dist[u] + 1) {dist[v] = dist[u] + 1;q.push(make_pair(-dist[v], v));}}}
}int main() {int n, m;scanf("%d %d", &n, &m);while (m--) {int u, v;scanf("%d %d", &u, &v);edges[u].push_back(v);edges[v].push_back(u);}int k;scanf("%d", &k);while (k--) {int s;scanf("%d", &s);dijkstra(s);int sum = 0;for (int i = 1; i <= n; i++) {if (i == s)continue;sum += dist[i];}printf("Cc(%d)=%.2f\n", s, (n-1.0)/sum);}
}

AC代碼(Floyd):

#include<bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f, MAX = 10001;int main()
{vector<int>edge[MAX];int n, m;scanf("%d %d", &n, &m);for (int i = 0; i <= n; i++) {for (int j = 0; j <= n; j++) {edge[i].push_back(INF);}}for (int i = 1; i <= n; i++) {edge[i][i] = 0;}for (int i = 0; i < m; i++) {int u, v;scanf("%d %d", &u, &v);edge[u][v] = edge[v][u] = 1;}for (int k = 1; k <= n; k++) {for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) {if (edge[i][j] > edge[i][k] + edge[k][j])edge[i][j] = edge[i][k] + edge[k][j];}}}int k;scanf("%d", &k);while (k--) {int c;scanf("%d", &c);double sum = 0;for (int i = 1; i <= n; i++) {if (i == c)continue;sum += edge[c][i];}printf("Cc(%d)=%.2f\n", c, (n-1)/sum);}
}

轉載于:https://www.cnblogs.com/ACMFish/p/7222852.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/284210.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284210.shtml
英文地址,請注明出處:http://en.pswp.cn/news/284210.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

web布局固定寬度+變化寬度實現思路

前言 頁面當中常規布局我想大家都會的&#xff0c;但有些布局是常規布局中實現不了的&#xff0c;比如變寬和固寬結合的&#xff0c;需要實現(300px)&#xff0b;(100%&#xff0d;300px)的兩列布局。以下樣式代碼前提均為盒模型為border-sizing 的前提下。 html部分 <div c…

CSS3 nth 偽類選擇器

考察下面的 HTML 代碼片段&#xff1a; <div><section>section 1</section><section>section 2</section><ul><li>item 1</li><li><ul><li>sub item 1</li><li>sub item 2</li><li>…

RedisCluster的安裝、部署、擴容和 Java客戶端調用

Redis下載 官網地址&#xff1a;http://redis.io/ 中文官網地址&#xff1a;http://www.redis.cn/ 下載地址&#xff1a;http://download.redis.io/releases/ 安裝 # &#xff08;三臺&#xff09;安裝 C 語言需要的 GCC 環境 yum install -y gcc-c yum install -y wget # 下…

【CloudCompare教程】001:CloudCompare中文版下載與安裝圖文教程

CloudCompare是一款功能強大的點云后處理軟件,本文講解CloudCompare中文版下載與安裝方法。 文章目錄 一、CloudCompare下載地址二、CloudCompare安裝教程三、CloudCompare中文設置一、CloudCompare下載地址 官方下載地址:http://www.danielgm.net/cc/release/ 二、CloudComp…

ML.NET相關資源整理

在人工智能領域&#xff0c;無論是機器學習&#xff0c;還是深度學習等&#xff0c;Python編程語言都是絕對的主流&#xff0c;盡管底層都是C實現的&#xff0c;似乎人工智能和C#/F#編程語言沒什么關系。在人工智能的工程實現&#xff0c;通常都是將Python訓練好的人工智能模型…

帶參數的宏替換

帶參數的宏替換因各種需求疊加&#xff0c;替換規則很怪異&#xff1a; 1、首先將實參替換形參&#xff0c;并展開宏 2、如果1步展開后&#xff0c;有#或者##&#xff0c;那么停止替換。 3、如果1步展開后&#xff0c;沒有#或者##&#xff0c;且參數也是宏&#xff0c;那么繼續…

JAVA學習日志(7-1-繼承)

為什么80%的碼農都做不了架構師&#xff1f;>>> 繼承 1.提高代碼復用性 2.讓類與類之間產生關系&#xff0c;有了這個關系才有了多態的特性 **不要為了獲取其他類的功能&#xff0c;簡化代碼而繼承&#xff0c; 必須是類與類之間有所屬關系才可以繼承&#xff0c;所…

BZOJ 1370: [Baltic2003]Gang團伙 [并查集 拆點 | 種類并查集WA]

題意&#xff1a; 朋友的朋友是朋友&#xff0c;敵人的敵人是朋友&#xff1b;朋友形成團伙&#xff0c;求最多有多少團伙 種類并查集WA了一節課&#xff0c;原因是&#xff0c;只有那兩種關系才成立&#xff0c;諸如朋友的敵人是朋友之類的都不成立&#xff01; 所以拆點做吧 …

常見Lidar點云數據處理及可視化軟件匯總

常見的點云處理及可視化軟件有&#xff1a; CloudCompare、Globalmapper、Pix4d、ArcGIS&#xff08;Pro&#xff09;、Lidar 360、PCL等等。 文章目錄1. CloudCompare2. Globalmapper3. Pix4d4. ArcGIS&#xff08;Pro&#xff09;5. Lidar 3606. PCL1. CloudCompare CloudCo…

Spring 自帶工具類匯總

斷言 斷言是一個邏輯判斷&#xff0c;用于檢查不應該發生的情況 Assert 關鍵字在 JDK1.4 中引入&#xff0c;可通過 JVM 參數-enableassertions開啟 SpringBoot 中提供了 Assert 斷言工具類&#xff0c;通常用于數據合法性檢查 // 要求參數 object 必須為非空&#xff08;Not…

解決new Thread().Start導致高并發CPU 100%的問題

背景之前接手一個項目的時候&#xff0c;發現到處是new Thread(()>{ //do something }).Start();這么做的目的&#xff0c;無非是為了減少頁面等待時間提高用戶體驗&#xff0c;把一些浪費時間的操作放到新線程中在后臺運行。問題但是這樣帶來的問題是大量的創建線程&#x…

基于 HTML5 Canvas 繪制的電信網絡拓撲圖

電信網結構&#xff08;telecommunication network structure&#xff09;是指電信網各種網路單元按技術要求和經濟原則進行組合配置的組合邏輯和配置形式。組合邏輯描述網路功能的體系結構&#xff0c;配置形式描述網路單元的鄰接關系&#xff0c;即以交換中心&#xff08;或節…

網絡相關配置,SSH服務,bash, 元字符

作業一&#xff1a;臨時配置網絡&#xff08;ip&#xff0c;網關&#xff0c;dns&#xff09;永久配置 設置IP和掩碼ifconfig eth0 192.168.2.2 netmask 255.255.255.0設置網關route add default gw 192.168.2.10[rootbogon ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0…

【GlobalMapper精品教程】021:利用控制點校正柵格圖像

本文講解GlobalMapper中利用控制點校正柵格圖像的方法,數據為配套實驗數據包中的data021.rar。 文章目錄 一、結果預覽二、校正過程【推薦閱讀】:ArcGIS實驗教程——實驗二:ArcGIS地理配準完整操作步驟 一、結果預覽 二、校正過程 (1)打開圖像。選擇實驗包中的待校正的柵…

[筆記]提升R的性能和突破內存限制的技巧

本文為雪晴數據網《R語言大規模數據分析實戰》 http://www.xueqing.tv/course/56 的課程學習筆記。 該課程目前更新到“第2章 Microsoft R Server簡介”的微軟數據科學家介紹MRS&#xff0c;后續教學主要是關于MRS的內容&#xff0c;再另外學習&#xff0c;所以本文只學習“第1…

WTM:ASP.NET Core快速開發利器!

不少程序員朋友應該都有這個想法&#xff0c;接接私活&#xff0c;賺賺外快&#xff0c;但是從零開發一套系統并不容易&#xff0c;今天給大家推薦一款開箱即用的通用后臺管理系統。一個能夠讓程序猿快速開發的炒雞腳手架&#xff0c;采用.NET Core開源框架&#xff01;github地…

【CloudCompare教程】002:點云繪制模式詳解

文章目錄 1. 按高程著色2. 按索引著色3. 按漸變著色1. 按高程著色 在內容列表中選中點云圖層,點擊【編輯】→【標量領域】→【將坐標導出到SF】。 勾選Z,點擊OK。 高程著色效果: 2. 按索引著色 點擊【編輯】→【標量領域】→【添加點指數為SF】。 索引著色效果:

《首席產品官》成海清 著 圖書目錄 思維導圖

原文檔地址&#xff1a;《首席產品官》成海清

「每天一道面試題」如何理解方法的重載與覆蓋?

方法重載在同一個Java 類中&#xff08;包含父類&#xff09;&#xff0c;如果出現了方法名稱相同&#xff0c;而參數列表不同的情況就叫做重載。方法的重載的規則&#xff1a;&#xff08;1&#xff09;&#xff1a;方法名稱必須相同&#xff08;2&#xff09;&#xff1a;參數…