第一步貪心,按照權值排序,越大的能用肯定最優
因為在當前情況下,假如可以用這個但不用
最後求取的解,你將他對應的那個換掉,乙個不會更差。
排完序後我們再考慮本題。
這題巧妙地轉化在於,轉化成圖模型,每個**的兩個端點相當於一條邊,如果k=1就是自環
對於乙個大小為x的集合,他們中的邊要不是x-1,要不是x(如果沒有乙個**能給某個點,這個點沒有意義不討論)
如果邊等於x-1,相當於這個有x個人的集合裡面有x-1個**,因此乙個人是空閒的,且我們可以通過邊傳遞**,使得任何乙個空閒都可以
那麼邊等於x代表沒人空閒。
我們按大到小列舉邊的時候,就相當於考慮並查集的思路,如果他們本來已經在乙個集合裡面了,就看他們是不是還可以加一條邊
如果他們不再乙個集合,那麼如果兩個集合有乙個還可以加就可以加
#includeusingview codenamespace
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;
}
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 機...