NC218425 魏遲燕的自走棋(貪心 並查集)

2022-05-27 10:09:12 字數 1075 閱讀 7417

第一步貪心,按照權值排序,越大的能用肯定最優

因為在當前情況下,假如可以用這個但不用

最後求取的解,你將他對應的那個換掉,乙個不會更差。

排完序後我們再考慮本題。

這題巧妙地轉化在於,轉化成圖模型,每個**的兩個端點相當於一條邊,如果k=1就是自環

對於乙個大小為x的集合,他們中的邊要不是x-1,要不是x(如果沒有乙個**能給某個點,這個點沒有意義不討論)

如果邊等於x-1,相當於這個有x個人的集合裡面有x-1個**,因此乙個人是空閒的,且我們可以通過邊傳遞**,使得任何乙個空閒都可以

那麼邊等於x代表沒人空閒。

我們按大到小列舉邊的時候,就相當於考慮並查集的思路,如果他們本來已經在乙個集合裡面了,就看他們是不是還可以加一條邊

如果他們不再乙個集合,那麼如果兩個集合有乙個還可以加就可以加

#includeusing

namespace

std;

typedef

long

long

ll;typedef pair

pll;

const

int n=2e5+10

;const

int inf=0x3f3f3f3f

;const

int mod=1e9+7

;int

p[n],st[n];

intn,m;

struct

nodes[n];

int find(int

x)

return

p[x];

}bool

cmp(node a,node b)

intmain()

for(i=1;i<=m;i++);

}else

; }

}sort(s+1,s+1+m,cmp);

ll sum=0

;

for(i=1;i<=m;i++)

}else

if(!st[pa])

}cout

return0;

}

view code

nc 監聽資料 linux包之nc之nc命令

nc 1.84 22.el6.x86 64 不用系統上提供的nc版本會有所不同,其提供的引數使用方法也略有差異 nc v w 1 192.168.2.10 z 1 65535 grep succeeded 埠掃瞄 1.4 強制使用ipv4 2.6 強制使用ipv6 3.d 允許socket通訊返回d...

nc命令介紹

名字 nc 連線 監聽任意的tcp和udp。概要 nc 46ddhklnrstuuvzc i 間隔 p 源埠 s 源ip位址 t 服務型別 w 超時時間 x 協議 x 位址 埠 主機名 埠 s 詳細說明 nc netcat 的功能使用是涉及到tcp或者udp的時候。它可以開啟tcp連線,傳送udp包...

nc命令說明

一,什麼是nc nc是netcat的簡寫,因為它短小精悍 功能實用,被設計為乙個簡單 可靠的網路工具 二,nc的作用 1 實現任意tcp udp埠的偵聽,nc可以作為server以tcp或udp方式偵聽指定埠 2 埠的掃瞄,nc可以作為client發起tcp或udp連線 3 機器之間傳輸檔案 4 機...