日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Lintcode】1718. Minimize Malware Spread

發布時間:2024/3/12 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Lintcode】1718. Minimize Malware Spread 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目地址:

https://www.lintcode.com/problem/minimize-malware-spread/description

給定一個nnn個節點的無向圖,以鄰接矩陣給出。每個節點代表一個網絡中的節點。再給定一個數組AAAA[i]A[i]A[i]表示節點iii被感染了(下文稱AAA里的點是”感染源“)。當一個節點被感染了,它所在的連通塊的所有節點都會被感染。現在允許選取一個“感染源”,將其變為”未感染“。問將哪個節點變為”未感染“可以使得剩余節點的總的被感染節點數量最小。如果有多個答案,則返回編號最小的節點。

思路可以參考https://blog.csdn.net/qq_46105170/article/details/113488695,那里是用并查集做的。這里采用DFS來做。

依然是要找到感染源只有一個的連通塊,那么這樣的連通塊的最大size對應的感染源就是答案(多個解則取編號最小者)。如果不存在這樣的連通塊,則直接取感染源的編號最小者。這里可以用DFS將每個連通塊染色,然后統計每個顏色的節點數,和每個顏色的污染源數。相同顏色的點顯然就是個連通塊。然后按上面邏輯求解即可。代碼如下:

import java.util.Arrays;public class Solution {/*** @param graph: the node graph* @param initial: the infected node* @return: the node index*/public int minMalwareSpread(int[][] graph, int[] initial) {// write your code here.int n = graph.length;// colors[i]存編號為i的節點被染上的顏色int[] colors = new int[n];Arrays.fill(colors, -1);int color = 0;for (int i = 0; i < n; i++) {if (colors[i] == -1) {dfs(i, color++, colors, graph);}}// size[i]存被染了顏色i的節點有多少個int[] size = new int[color];for (int i : colors) {size[i]++;}// malCount[i]存被染了顏色i的連通塊里的感染源有多少個int[] malCount = new int[color];for (int i : initial) {malCount[colors[i]]++;}int res = -1, maxSaved = 0;for (int v : initial) {// 略過含多個污染源的連通塊if (malCount[colors[v]] != 1) {continue;}if (size[colors[v]] > maxSaved) {maxSaved =size[colors[v]];res = v;} else if (size[colors[v]] == maxSaved) {res = Math.min(res, v);}}if (res == -1) {res = n;for (int i : initial) {res = Math.min(res, i);}}return res;}private void dfs(int v, int color, int[] colors, int[][] graph) {colors[v] = color;for (int next = 0; next < graph[v].length; next++) {if (graph[v][next] == 1 && colors[next] == -1) {dfs(next, color, colors, graph);}}} }

時間復雜度O(n2)O(n^2)O(n2),空間O(n)O(n)O(n)

總結

以上是生活随笔為你收集整理的【Lintcode】1718. Minimize Malware Spread的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人免费毛片足控 | 国产91区 | www.97色 | 色综合久久久久综合体桃花网 | 中文字幕第一页在线播放 | 国产又爽又黄无码无遮挡在线观看 | 久福利 | 欧美黄色免费在线观看 | 国产精品视频 | 桃色一区二区 | 男男黄色片 | 中文字幕 欧美激情 | 日韩欧美一区二区三区 | 91一级片| 97碰碰视频 | 国精产品一区一区三区有限公司杨 | 欧美激情不卡 | 丁香婷婷在线 | 波多野结衣视频免费看 | 日本伦理片在线播放 | 人人妻人人澡人人爽国产一区 | 少妇媚药按摩中文字幕 | 爆操少妇 | 丰满少妇久久久久久久 | 国产精品一区电影 | 1级黄色大片| 国产精品1区2区 | 看免费黄色大片 | 日韩综合久久 | 老女人做爰全过程免费的视频 | www.爱操| 国产色av | 视频一区二区中文字幕 | 久草在在线 | 久久亚洲中文字幕无码 | 日本视频色 | 日韩图片区 | 国产性生活一级片 | 日韩aⅴ在线观看 | 2020av视频 | 少妇粉嫩小泬喷水视频www | 老汉av| 亚洲av人人夜夜澡人人 | 纯爱无遮挡h肉动漫在线播放 | 国内精品99| 欧美成人午夜精品久久久 | 久久色婷婷 | 动漫av在线免费观看 | 蜜桃做爰免费网站 | 日韩精品电影在线观看 | 九色亚洲| 国产精品一区二区av | 欧洲成人av | 精品一区欧美 | 国产91在线亚洲 | 欧美色图1 | 男女网站免费 | 欧洲一级片 | 打屁股外国网站 | 亚洲男人天堂2022 | 亚洲不卡免费视频 | 国产欧美一区二区三区精品酒店 | 免费成人av在线 | av最新版天堂资源在线 | 中文字幕无码毛片免费看 | 日韩欧美在线中文字幕 | 欧美一级免费大片 | 久久久久久久99 | 日韩欧美在线一区二区 | 毛片毛片毛片毛片毛片毛片毛片毛片 | 求一个黄色网址 | 亚洲一区在线看 | 日日草天天干 | 日本一区二区精品视频 | 无码人妻丰满熟妇区毛片18 | 国产不卡免费视频 | 91亚洲国产成人精品一区二区三 | www.97av| 国产精品v欧美精品v日韩精品 | 亚洲欧洲免费视频 | 久久久久国产精品夜夜夜夜夜 | 婷婷爱五月 | 亚洲视频 欧美视频 | 经典杯子蛋糕日剧在线观看免费 | 国产精品人八做人人女人a级刘 | 欧美精品入口蜜桃 | 日本免费福利视频 | 可以在线观看的黄色 | 一道本久久| 97精品久久久 | 视频区小说区图片区 | 好吊色视频988gao在线观看 | 亚洲美女偷拍 | 欧美激情视频在线 | 日韩1区2区3区 | 中文字幕一区二区三区乱码人妻 | 亚洲丁香婷婷 | 日韩一区二区不卡视频 | 欧美人与性动交α欧美片 |