首页 > 其他分享 >NOIP 复习题之二分图

NOIP 复习题之二分图

时间:2024-11-14 21:58:02浏览次数:1  
标签:二分 连边 联通 填入 NOIP 复习题 食物 2i

CF741C

有 \(2n\) 个人围成一圈坐在桌子边上,每个人占据一个位子,对应这 \(2n\) 个人是 \(n\) 对情侣,要求情侣不能吃同一种食物,并且桌子上相邻的三个人的食物必须有两个人是不同的,只有两种食物,问一种可行分配方式。


思路: 我们在两个点之间连边,表示他们吃的不一样。然后对于点对 \((x,y)\),连边 \(x\) 和 \(y\)。对于相邻 \(3\) 个人吃的食物不同的限制,可以直接将其强化,在 \(2i-1\) 和 \(2i\) 之间连边,可以直接保证相邻 \(3\) 个人吃的食物不同.

如何保证这样的正确性?我们需理解连出来的图一定是二分图。二分图有个性质,如果这个图不是二分图的话,那么就一定有奇环,如果没有,就一定是二分图。任何一个环都是由若干条情侣边和若干条 \((2i-1,2i)\) 边互相交错而成,所以不存在奇环。

P10936

一个入侵者 \(a\) 被第 \(b\) 号塔的第 \(c\) 次导弹袭击中,可以连边 \(a\to (b,c)\)。

因为有时间的限制,显然不能连接 \(a\to (b,+∞)\)。因为时间具有单调性,时间越多,入侵者就越能被消灭。则二分时间 \(mid\),若第 \(b\) 号塔的第 \(c\) 次导弹的发射时间小于等于 \(mid\),则连边。

最后看每一个入侵者是否被一个点对 \((b,c)\) 所连接,即可以采用二分图匹配。

CF1354E

先对图进行二分图染色。

  • 染白色的点填入 \(2\),染黑色的点填入 \(1/3\)。
  • 染黑色的点填入 \(2\),染白色的点填入 \(1/3\)

对于一个联通块来说,\(2\) 的数量等于黑点数量或者白点数量,二选一。因为总的 \(2\) 的数量限制为 \(n_2\),定义 \(f_{i,j}\) 代表前 \(i\) 个联通块,有 \(j\) 个 2 是否可行。背包即可。

考虑输出方案。先把每个联通块的 \(2\) 填了,这可以根据 dp 值确定。最后剩下的 \(1/3\) 直接随便加入即可。

CF1012B

考虑建立一个二分图,左边为行的编号,右边为列的编号。若 \((x,y)\) 存在标记,则连接 \(x\) 和 \(y\)。

考虑这个标记如何变化:\((r_1,c_1)+(r_1,c_2)+(r_2,c_1)\to (r_2,c_2)\),容易发现在此过程中二分图联通块数量不变。且一个联通的二分图,将在有限次操作下,变成一个完全二分图。现在只需要考虑加多少条边使整体二分图变的联通。答案就是联通块个数减一。

标签:二分,连边,联通,填入,NOIP,复习题,食物,2i
From: https://www.cnblogs.com/stOtue/p/18546928

相关文章

  • 二分——E. Klee's SUPER DUPER LARGE Array!!!
    题目Klee有一个数组a长度n包含整数[K,K+1,...K+n]按此顺序。Klee想要选择一个索引i(1<=i<=n),使得x=|a1+a2+...+ai-ai+1-...-an|最小化。请注意,对于任意整数z,|z|表示x.输出x.输入第一行包含t(1≤t≤1e4)—测试用例的数量。每个测试用例包含两个整数n和k(2≤n,k≤109)—数......
  • 2025 --炼石计划-- 11 月 13 日 --NOIP 模拟赛 #20
    2025--炼石计划--11月13日--NOIP模拟赛#20T1邻间的骰子之舞签到题显然答案具有二分性,考虑二分答案。注意到每次有意义的复制会使长度翻倍,即最多复制\(60\)次,而粘贴则类似一个乘积的形式,check时可以枚举复制次数,此时则能知道粘贴次数,由和定平分时积最大得到最大长度......
  • NOIP 模拟赛 #20
    已经好久没写模拟赛题解了啊。。。A.邻间的骰子之舞一个结论,可以打表,每一次复制后跟的粘贴数量要尽量相同,差不超过1,所以枚举复制了几次,然后二分最大的出来答案小于\(n\)的数\(mid\),然后枚举多少个复制后的粘贴数为\(mid+1\),出来的答案可以\(O(1)\)算,大于\(n\)直接输出......
  • NOIP2024 前集训:MX 炼石计划 NOIP 模拟赛 20
    前言今天不知道为啥去打MX了,bug不少啊,包括但不限于赛时能通过自己主页看自己题过没过,赛时可以进入“补题”的比赛交从而直接成IOI赛制,文件还有点问题?0+100+12+0,T1读假题:\(\ge×,>√\),喜提爆零,但是本来就不会正解,我去我表都打出来了不知道二分??!?!!?不打T4是错误的,乱搞能得的分......
  • 241114 noip 模拟赛
    省流:\(90+100+20+10\)。t1t2花太久时间了。T1题意:给一张\(n\timesm\)的网格图,\((x,y)\)与\((x+1,y)\)的边为\(a_x+b_y\),\((x,y)\)与\((x,y+1)\)的边为\(c_x+d_y\)。求这张图的最小生成树的边权和。\(n,m\leq10^6\)。稍微画图注意到,一个点一定跟它......
  • [68] (炼石计划) NOIP 模拟赛 #20
    学了一个挺帅的MerMaid所以用一下MerMaid就是你们接下来会看到的好看小标题但是实际上它是用来画流程图的……flowchartTB A(邻间的骰子之舞) styleAcolor:#ffffff,fill:#00c0c0,stroke:#ffffff考虑每次复制以后一定会粘贴若干次(大于零,否则没有意义),因此将复制粘贴捆绑......
  • 代码随想录算法训练营第一天| 704. 二分查找、35.搜索插入位置、27. 移除元素、977.有
    文档讲解:代码随想录视频讲解:代码随想录状态:完成4道题一、数组理论基础数组:连续内存空间,存储类型相同的元素集合,适合读不适合写注意:Python里可以存储不同类型的元素,但刷题时都是按照相同元素去做的相同元素占用存储的空间大小是一样的,下一个元素的位置就确定了数组时间......
  • MX 2025--炼石计划 NOIP 模拟赛 #20
    打得抽象。T3,T4放俩难的板子。由于是MX的题,就不放题意了。邻间的骰子之舞发现复制操作不会超过\(64\)次,而粘贴操作肯定是越均匀越好,直接二分暴力跑就行了。点此查看代码#include<bits/stdc++.h>usingnamespacestd;#definerep(i,s,t,p)for(inti=s;i<=t;i+=p)#......
  • 【考试题解】NOIP2024(欢乐)加赛3
    目录A.SakurakoandWater题目内容思路代码B.BinomialCoefficients,KindOf题目内容思路代码C.QED'sFavoritePermutation题目内容思路代码D.CardGame题目内容思路代码E.LongWaytobeNon-decreasing题目内容思路代码F.ManyGames题目内容思路代码A.SakurakoandW......
  • MX 炼石计划 NOIP 模拟赛20(我真做过1~19吗?)
    MX炼石计划NOIP模拟赛#20T1邻间的骰子之舞二分答案,发现性质,签到,过。记得开__int128没开,挂30.码:CODE#include<bits/stdc++.h>typedeflonglongll;usingnamespacestd;constintN=2e5+100;#ifdeflinux#definegetchargetchar_unlocked#define......