首页 > 其他分享 >题解:CF1630F Making It Bipartite

题解:CF1630F Making It Bipartite

时间:2024-08-18 16:27:28浏览次数:7  
标签:偏序 连边 个点 题解 CF1630F 倍数 Bipartite rightarrow

题意

图上有 \(n\) 个点,且具有点权,点权保证互不相同,若两个点点权有倍数关系,则两点之间有一边,问你最少删去多少个点能使图变为二分图。

思路

因为如果 \(a\) 是 \(c\) 的倍数且 \(c\) 是 \(b\) 的个数,所以 \(a\) 是 \(c\) 的倍数。

由此可以看出,若 \(a\) 与 \(b\) 相连且 \(b\) 与 \(c\) 相连,那么 \(a\) 一定与 \(c\) 相连,这样一定会形成一个环,无法组成二分图。

可以将一个点 \(x\) 分成 \(x_{0}\) 和 \(x_{1}\),表示 \(x\) 的只有入度或只有出度。

那么目标是找出若干对不能同时选的点,在它们之间连边,能够保留的点数即为这个图的最大独立集。

这个貌似不好直接求,但发现原图本身是一个偏序集,因此可以将我们自己建的图也定向成偏序集,求它的最长反链。

但 \(x_{0}\) 和 \(x_{1}\) 不能一起选,则连边 \(x_{0}\rightarrow x_{1}\)。

若 \(a_{y}\) 是 \(a_{x}\) 的倍数,除了 \((x_{1},y_{0})\) 以外任意两点都不能一起选,连边 \(x_{0}\rightarrow y_{0},x_{0}\rightarrow y_{1},x_{1}\rightarrow y_{1}\)。

接下来跑 dinic。

AC code

标签:偏序,连边,个点,题解,CF1630F,倍数,Bipartite,rightarrow
From: https://www.cnblogs.com/aub-unluck-beginning/p/18365757

相关文章

  • 题解:CF1034B Little C Loves 3 II
    思路看到这道题时,第一思路就是网络流,结果一看数据\(10^{9}\)直接转向找规律。主要思路:神秘特判。首先,下面的结论基于\(n\lem\)。Case1.当\(n=1\)时,易得的是我们可以以\(6\)为循环节构造。Case2.当\(n=2\)时,我们可以构造出\(4a,5a,6a\)的形式。易得,通过裴蜀......
  • ABC 367 G 题解
    ABC367G神奇题目场上想到了引入多元生成函数之后就嗝屁了。定义两个多项式的运算\(A(z)*B(z)=\sum_{i}\sum_{j}z^{i\oplusj}a_ib_j\),也就是异或卷积。定义两个二元生成函数\(A(x,y)*B(x,y)=\sum_{i,p}\sum_{j,q}x^{i\oplusj}y^{p+q}a_{i,p}b_{j,q}\)我们仍然选用\(\prod......
  • 题解:AT_abc367_d [ABC367D] Pedometer
    首先肯定要单层循环枚举元素,然后想方法求出一个元素的所有答案。一开始我写了一个二分找\(m\)倍数的方法,发现\(m\)小的时候还不如暴力。于是联想到之前做过的一道题,可以借助于取模的前缀和数组。对于当前元素\(i\),如果一个元素之前的前缀和与\(i\)之前的前缀和对\(m\)......
  • Atcoder [ABC367F] Rearrange Query 题解
    简要题意给定两个长度为\(N\)的序列\(A\)和\(B\)。有\(Q\)个查询,每个查询给定\(l,r,L,R\),其中\(l\leqr,L\leqR\),要求判断\(A\)的第\(l\)项到第\(r\)项构成的集合与\(B\)的第\(L\)项到第\(R\)项构成的集合是否相等。题解显然两个相等的集合所有元素......
  • Atcoder [ABC367C] Enumerate Sequences 题解
    简要题意给定\(n,k\)和\(R_i\),你需要输出所有满足下列条件的整数序列:长度为\(n\)。第\(i\)个元素的范围为\([1,R_i]\)。一个序列的所有元素的总和为\(k\)的倍数。输出请按照按照从左至右按位从小到大的顺序输出。题解注意到数据范围很小,我们可以直接爆搜,这里用......
  • 【动态规划、dp】[CSP-J 2022] 上升点列 题解
    题目描述在一个二维平面内,给定nnn个整数点(xi......
  • 题解:AT_abc367_e [ABC367E] Permute K times
    题意给你一个长度为\(N\)的序列\(X\),其中每个元素都介于\(1\)和\(N\)之间(含),以及一个长度为\(N\)的序列\(A\)。打印在\(A\)上执行以下操作\(K\)次的结果。将\(A_i\)替换为\(A_{X_i}\)。每个操作同时进行。思路元素\(i\)经过\(k\)次变化后的值就是元素......
  • 对树链剖分的爱 题解
    前言题目链接:洛谷。题意简述给出一棵\(n\)个节点以\(1\)为根的有根树。对于第\(2\leqi\leqn\)个节点,其父亲\(f_i\)在\([l_i,r_i]\)中均匀随机。每个树的边有边权,初始为\(0\)。现在有\(m\)次操作,第\(i\)次操作表示将\((u_i,v_i)\)的路径上所有的边的权值统......
  • AtCoder Beginner Contest 367 题解(E~G)
    E转换关系看作有向边,\(n\)点\(n\)边构成基环树森林,基环树森林k后继唯一,记f[i][j]为点\(i\)的\(2^j\)级祖先,随便倍增。F一眼哈希,不知道有没有不哈希的做法。在这里我们不关心元素的顺序,只关心元素是否出现以及出现几次,考虑一个\(n\)位\(n+1\)进制数,\(a_i\)出现一......
  • [题解]CF76B Mice
    思路比较简单的贪心。对于可以选择两个奶酪的老鼠,我们先将它们忽略掉。现在所有老鼠所吃的奶酪是唯一确定的。考虑加上可以选择两个奶酪的老鼠如何选择。显然,如果它可以选择一个没有任何老鼠吃过的奶酪,它必然这样选择。其次,如果它可以选择的奶酪被吃掉的时间\(t\)与它到达奶......