首页 > 其他分享 >成都集训图论篇

成都集训图论篇

时间:2023-07-30 17:34:08浏览次数:27  
标签:网格 蛐蛐 格子 图论 割点 成都 删去 集训 跳蚤

[NOI] 网格

题目描述

跳蚤国王和蛐蛐国王在玩一个游戏。

他们在一个 \(n\) 行$m $ 列的网格上排兵布阵。其中的 \(c\) 个格子中 ,每个格子有一只蛐蛐,其余的格子中,每个格子有一只跳蚤。

我们称占据的格子有公共边的两只跳蚤是相邻的。

我们称两只跳蚤是连通的,当且仅当这两只跳蚤相邻,或存在另一只跳蚤与这两只跳蚤都连通。

现在,蛐蛐国王希望,将某些(零个,一个或多个)跳蚤替换成蛐蛐,使得在此之后存在至少两只跳蚤不连通。

\(n,m \leqslant 10^9,c \leqslant 10^5\) 。

思路点拨

答案肯定在 \(0,1,2\) 之间,具体证明如下:

  • 若 \(c=0\) ,这是最劣情况,我们可以堵住网格图的边角,花费两个蛐蛐。

  • 若网格图在删去包含蛐蛐的点之后存在割点,那么答案就是 \(1\) ,堵住割点即可。

  • 若一开始就存在两个点不连通,答案就是 \(0\) 。

题目就是想表达,给定一张网格图,删去了 \(c\) 个点,问是否存在割点,还要判断是否联通吧。

我们先考虑判断联通。我们发现,删去的点相比于 \(n\times m\) 这个规模实在是微不足道,也就是说,并不是每一个点都是有用的。我们发现,对于一个被删去的点,周围切比雪夫距离小于等于 \(2\) 的点才是我们真正需要考虑的,不然对于这个割点而言,它并不会产生任何贡献。我们可以在建好的图中判联通,如果不连通,答案就是 \(0\) 。

我们接下来就可以求出全部的割点,如果存在一个割点与某一个一开始就被删除的点切比雪夫距离小于等于 \(1\) ,那么答案就是 \(1\)。反之答案就是 \(2\) 。

Fiary

给定一张无向图,问对于每一条边,删去之后二分图。

\(n,m \leqslant 10^4\) 。

思路点拨

暴力时不可以过的,不要想了。

我们考虑,对于第 \(i\) 条边,我们可以认为这条边在时刻 \([1,i-1]\) 和时刻 \([i+1,m]\) 出现,问题就可以转化为,时刻 \(i\) 是否是二分图。对于这种问题,我们可以使用线段树分治解决。

标签:网格,蛐蛐,格子,图论,割点,成都,删去,集训,跳蚤
From: https://www.cnblogs.com/Diavolo/p/17591730.html

相关文章

  • 2023暑假集训记2
    7.7~7.17、7.20NOI模拟+好题分享考试五六次的模拟考试,让我深刻了解到\(\text{NOI}\)的难度,明白自己和真正高手之间的差距,也懂了我自己需要努力的方向。我的代码能力有待提升,可以通过多做不同类型的题让我掌握一些写代码的技巧,规范我的码风,在同时了解自己容易出错、需要特别......
  • 集训Day 7
            比赛开始看了看T1veryGood有思路,直接用手动全排列A掉(虽然卡了5min左右但get100pt),转过来看T2用暴力模拟A掉(get100pt),接着看T3虽然第一眼因为最大值最小看成了二分,但很快否决了,这指定是一道多源最短路,但是当时脑子亿抽写了一个适用于单源最短路的......
  • 2023暑假集训记1
    训练7.1~7.3(组合数学)上课上午来了两名学弟一起听\(\texttt{yny}\)学长讲组合数学。学长先讲了最基础的组合数定义,接着讲了亿些公式,和些恒等变换。注:之后的两天(7.2和7.3)我进行了消化,并且全部理解。讲了基本的公式恒等式后,学长通过讲例题使我们将知识进行运用。运用题对我来......
  • 暑假集训D6 2023.7.29 补题
    原比赛链接2022年华中科技大学程序设计新生赛(重现赛)官方题解华中科技大学2022新生赛(HUSTFCPC2022)题解&滚榜\(underset\)\(\underset{\sim}Λ\)\(\underset{\sim}{abcd}\)N.WalkAlone'sConjecture题意:给定一个整数\(n\),找出两个数\(x\)和\(y\),使得满足如下......
  • 集训Day 6
            Double心态=0,自信=0,勇猛=0;比赛开始,由于起晚了10分钟(心态-=50%;)心态不好,看了一眼第一题,很简单,一定能写对!但写了估摸10min还是没过样例(自信-=90%;)就换了一种写法调了30min才过了所有样例,(自信-=100%;),接着看第二题,题目数据比较水就慌忙写了一个DFS水一......
  • 成都集训游记
    DAY1:一上来就考试,考得很难,不记得多少名了。T1题意:有\(N\)个节点,第\(i\)个节点上有\(d[i]\)个本质不同的孔,现在用\(N-1\)条边将\(N\)个节点连成一棵树(一个孔只能使用一次),定义两棵树相同当且仅当对于每一条边,它插入的两个孔在两棵树中相同。问可以连出多少不同的树,对......
  • 济南 Day 5 图论
    SolutionT1emoairx的二叉树原题链接4114:emoairx的二叉树简要思路一道简单的递归签到题,每次找到较大的数进行除以\(2\),每次递归把步数加一,直到两个点走到同一个点上。完整代码#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;intm;intans(intx......
  • 「赛后总结」暑假集训:20230727 CSP 模拟赛
    「赛后总结」20230727CSP模拟赛点击查看目录目录「赛后总结」20230727CSP模拟赛总结题解T1卷T2简单题T3粉丝T4字符串已经入园两年了吗。好快哦。2023年7月28日20:04:早上就写完了但忘了发了。以下内容均写于「2023年7月27日」。前两天题还没改完呢,有......
  • 集训Day 5
    A题:  B题: 这是集训以来感觉最好的一次,比赛开始,先看了一眼A题问题不大,直接联想到了前缀和,由于这里是异或,就将原来的求[l,r]区间内和的公式:sum[r]-sum[l-1]改为sum[r]^sum[l-1](根据的是异或的自反性)直接A掉(get100pt),继续看B题,B题由于我基本没做对过,就只是看了几眼,写了一......
  • 暑假集训D5 2023.7.28 补题
    首先来回顾一下\(dijkstra\)和\(SPFA\)里面\(vis\)数组的作用和区别,以及不用\(vis\)数组的影响.(今天发现之前写堆优化的\(Dijkstra\)都不加\(vis\)数组...)\(Dijkstra\)算法中,每次取出距离源点最近的一个点来更新与他相连的其他点,置\(vis\)数组为\(true\)......