SPOJ839 OPTM - Optimal Marks】的更多相关文章

传送门 闵神讲网络流应用的例题,来水一水 要写出这道题,需要深入理解两个概念,异或和最小割. 异或具有相对独立性,所以我们把每一位拆开来看,即做大概$32$次最小割.然后累加即可. 然后是最小割把一张图分割成两个集合,简单看就是0集合和1集合. 简单的建图: 原图不变,改成双向边,所有的流量限制为1.然后所有S点向点权为1的连边,点权为0的向T连边,容量都是正无穷. 为什么这样建?首先看,最小割把一张图分成两个点集.而因为我们的流量限制可以让最小割只割真实存在的边,而割的也只有可能是跨越0集合和…
OPTM - Optimal Marks You are given an undirected graph G(V, E). Each vertex has a mark which is an integer from the range [0..231 – 1]. Different vertexes may have the same mark. For an edge (u, v), we define Cost(u, v) = mark[u] xor mark[v]. Now we…
OPTM - Optimal Marks no tags  You are given an undirected graph G(V, E). Each vertex has a mark which is an integer from the range [0..231 – 1]. Different vertexes may have the same mark. For an edge (u, v), we define Cost(u, v) = mark[u] xor mark[v]…
You are given an undirected graph G(V, E). Each vertex has a mark which is an integer from the range [0..231 – 1]. Different vertexes may have the same mark. For an edge (u, v), we define Cost(u, v) = mark[u] xor mark[v]. Now we know the marks of som…
http://www.spoj.com/problems/OPTM/ 题意: 给出一张图,点有点权,边有边权 定义一条边的权值为其连接两点的异或和 定义一张图的权值为所有边的权值之和 已知部分点的点权,自定义其余点的点权 使图的权值最小,并在此基础上使点权和最小 输出点的权值 异或——按位做 那么题目就变成了已知一些点的点权为0/1,自定义剩余点的点权0/1 使01相遇的边最少 (01相遇指的是一条边连接的两点的点权不同) 我们建立最小割模型: 先不考虑第二问 源点向已知点的点权为0的点连正无穷…
因为是异或运算,所以考虑对每一位操作.对于所有已知mark的点,mark的当前位为1则连接(s,i,inf),否则连(i,t,inf),然后其他的边按照原图连(u,v,1),(v,u,1),跑最大流求最小割.然后从s沿着有剩余流量的边dfs,把dfs到的点都与(|)上1,因为是与,所以即使操作到了已知mark的点也没关系. 考虑这样做的意义.最小割就是把总点集分割为两个点集S,T,使得所有\(u\in S,v\in T,val(u,v) \)的值最小.也就是说,在这道题中的意义就是在当前位使最少…
这道题和 BZOJ 2400 是一道题,不多讲了 CODE #include <cstdio> #include <cstring> #include <vector> #include <queue> #include <algorithm> using namespace std; typedef long long LL; template<typename T>inline void read(T &num) { ch…
[SPOJ839]Optimal Marks 试题描述 You are given an undirected graph \(G(V, E)\). Each vertex has a mark which is an integer from the range \([0..2^{31} - 1]\). Different vertexes may have the same mark. For an edge \((u, v)\), we define \(Cost(u, v) = mark…
SP839 Optimal marks(最小割) 给你一个无向图G(V,E). 每个顶点都有一个int范围内的整数的标记. 不同的顶点可能有相同的标记.对于边(u,v),我们定义Cost(u,v)= mark [u] \(\oplus\) mark [v].现在我们知道某些节点的标记了.你需要确定其他节点的标记,以使边的总成本尽可能小.(0 < N <= 500, 0 <= M <= 3000) 先来看一下异或的性质,由于每一位是独立的,我们可以把每一位拉出来分开考虑,变成32个子…
Optimal Marks(optimal) 题目描述 定义无向图边的值为这条边连接的两个点的点权异或值. 定义无向图的值为无向图中所有边的值的和. 给定nn个点mm条边构成的图.其中有些点的权值是给定的,另外一些由你来定.点权必须为非负数.现在你需要使无向图的值最小,且在保证图的权值最小的情况下点的权值的和最小. 输入 第一行两个数nn和mm,表示图的点数和边数. 接下来nn行,每行一个数,表示每个点的权值.如果是负数,表示该点点权由你定,点权绝对值不超过109109. 接下来mm行,每行两个…