本來是一道最小生成樹的問題,但是因為邊數過多,因此考慮優化
觀察到這是區間資訊,可以聯想到使用倍增演算法,將區間變成2進製,從大長度不斷往下,每一層做一下最小生成樹,目的是排除一些不需要的連邊。用佇列儲存有用的
這樣到0的時候做的最小生成樹就是答案。這樣的複雜度保證是,我們只會做log層,並且每層的佇列中的資訊最多是n,因此是nlogn
#includeusingview codenamespace
std;
typedef
long
long
ll;const
int n=3e5+10
;const
int mod=1e9+7
;int p[n][31
];int f[n][31
];ll sum[n],tot[n];
intn,m;
struct
nodes[n];
queue
q1[30],q2[30
];bool
cmp(node a,node b)
int find(int x,int
i)
return
p[x][i];
}int
main()
for(i=1;i<=pp;i++)
}for(i=1;i<=n;i++)
}for(i=1;i<=n;i++)
for(i=1;i<=m;i++)
sort(s+1,s+1+m,cmp);
for(i=1;i<=m;i++)
}for(i=pp;i>=0;i--)
else
}else
if(q1[i].size())
else
int pa=find(tmp.a,i),pb=find(tmp.b,i);
if(pa!=pb)
else}}
}ll ans=1e18;
int mx=0
;
for(i=1;i<=n;i++)
else
if(tot[i]==mx)}}
cout"}
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 機...