其他分享
首页 > 其他分享> > 做题记录——2.14-2.19

做题记录——2.14-2.19

作者:互联网

做题记录应该会比较少。

重心并不是外题(。

2022.2.14

停课了。

今天知道了 CTS2022 的成绩,非常不开心。

呜呜呜我的 pb 呜呜呜。

晚上在听民谣。希望明天能开心一点。

CF1285F Classical?

显然是枚举一波 \(d = gcd(x,y)\),然后把 \(d\) 的倍数扔进一个 vector 里 solve。

然后就不会了 /kk。

然后你可以从大到小枚举。当你枚举到 \(x\) 的时候,如果存在 \(y>x\) 且 \(gcd(x,y) = 1\),那么 \(x < z < y\) 的 \(z\) 都没用了。就把 \(z\) 扬了就行了。

然后你就得到了一个 \(O(n \log^2 n)\) 的做法。

之后其实可以用 \(\mu\) 优化一下复杂度。

CF293B Distinct Paths

这 tm。。

dfs 题,肝败吓疯。

LG6156 简单题

好像确实是简单题。

直接暴力整除分块,然后直接自然数幂和乱搞就行了。

CF722E Research Rover

这题跟我远古以前出过的一道模拟赛题巨像(赛后才知道那题撞了 thupc 某题)。

设 \(f_i\) 表示经过第 \(i\) 个点,期望变成原来的多少。

大力 \(O(k^2)\) dp 就行了。

套个概率的壳子。

CF741C Arpa's overnight party and Mehrdad's silent entering

题目这么鬼长。

暴露出了没有任何图论基础的事实。

暴露出了没有任何构造基础的事实。

两个大毒瘤聚在一起了属于是。

考虑把情侣之间连边,再把 \(2i-1\),\(2i\) 一起连边。

这样搞出来一定是个二分图。

直接染色。

2022.2.15

CF986C AND Graph

zsh 你个怂逼。为什么有想法了不写。

大力 dfs 就行了。

CF1368E Ski Accidents

好题!!1

考虑一个合法的方案的删点方案 \(S\)。

把剩下的图分成源点集合 \(A\) 和汇点集合 \(B\)。

发现一些性质:

\(A\) 中的点的入边全部来自 \(S\)。

\(A\) 中的点的出边全部指向 \(B\) 和 \(S\)。

\(B\) 中的点的入边全部来自 \(A\) 和 \(S\)。

\(B\) 中的点的出边全都指向 \(S\)。

拓扑序动态维护即可。

CF547D Mike and Fish

日常降智。

考虑把行,列看成点。

你会搞出一个无向图。

这时其实可以直接跑有源汇上下界可行流。

更方便的做法是建出边之后维护一个欧拉回路。

CF487E Tourists

口胡:

缩点之后是一棵树。

显然在边双里可以随便乱走。

那做完了。

哈哈,好像跟题解差不多。

CF280D k-Maximum Subsequence Sum

这题跟标签的 graphs 和 flows 有什么关系吗。

直接上线段树,对于每个划分,记是否左右相邻。

随便转移。

写完一个函数记得 return!

看了你谷的题解区,我他妈直接问号。

ATS 和 ATM 你们两个是石乐志吧。

2022.2.16

哈↑哈↓。

CF923E Perpetual Subtraction

模拟赛题。

大力把生成函数写出来就行了。

CF1019C Sergey's problem

有一种构造的方法。

删除一个点 \(u\),以及删除从这个点出发的边连接的点。然后对新图求出符合条件的方案。

如果新图中存在一个点到 \(u\) 的距离是 1,那就假装无事发生。

如果不存在,就把 \(u\) 加进答案集合里。

至于如何实现,不是重点(。

CF1404E Bricks

考虑最暴力的方式,对每个点 \(1 \times 1\) 覆盖。

那么如果打破了 \(x\) 个次元壁,答案就会减少 \(x\)。

考虑计算最多的能打破的次元壁。

发现同一个方块内,左右/上下 的次元壁不能被同时打破。

就 link 一下跑个最小割就行了。

CF464E The Classic Problem

什么毒瘤多合一题。

显然是把数按二进制存。

然后你考虑 dijkstra 需要的操作。

你发现需要加法和比较大小。

于是你用一棵主席树维护。

对于加法,就相当于区间置 0,单点赋值。

对于比较大小,就在线段树上二分哈希值。

你大力就行了。

CF325E The Red Button

老早之间就看到过这题了。

我也不知道为啥过了。

CF521E Cycling City

好像可做?

边双缩点之后,只要不是一个简单环就一定有解?

看起来挺对的。

哦,好像可以更暴力一点。

2022.2.17

CF429E Points and Segments

想到了欧拉回路,挺成功的。

没想到正解,挺失败的。

你弱化一下,变成对于每个端点,\(|val| \leq 1\)。

你发现对于每个端点,如果有偶数条边,那么它的 \(val\) 一定等于 0。

然后上面这玩意大力欧拉回路就行了。

对于端点不是偶数条边的情况,你就手动给它加一条边,不影响正确性。

CF1491G Switch and Flip

首先考虑经典的交换方式。

你发现对于一个全向上的环,按照这样交换 \(n-1\) 次,会搞出来两个位置相同但是方向向下的点。

如果这个环里存在两个本身向下的点,按照这样操作就能搞出答案。

那你可以用一次操作把两个环合并,就可以执行上述步骤。

如果最后还剩下一个环,有奇技淫巧可以在 \(n+1\) 次内解决。

CF938G Shortest Path Queries

阿西巴西巴西巴。

wdnmd 没有想到线性基。寄!

有了线性基,这题就比较简单了。

至于加边和删边?线段树分治就行了。

CF1383D Rearrange

zsh 为什么就是不会 greedy 呢 /fn/fn。

倒序插进去,有个比较牛逼的做法。

如果这个数在行集合和列集合里出现了,新开一行或一列。

否则扔到前面的行列里。

这样做是对的。

首先它保证了 S 是相同的。

其次其他数并不会影响行集合跟列集合。

CF360E Levko and Game

先争胜,后保平。

把边都搞成 \(r\)。

然后对于一条边 \(u \rightarrow v\),如果 \(dis_{s1,u} < dis_{s2,u}\) ,就把它搞成 \(l\)。

这样跑一遍看能不能赢。

一直重复这个过程。

2022.2.18

CF1545C AquaMoon and Permutations

虽然被这题搞得非常自闭,但不得不说这题质量很高。

你考虑如果有某一列某一个数只出现一次,那么一定会选这一行。你就把这一行删掉就行了。

如果不存在某一列某一个数只出现一次,根据抽屉原理,每一个数一定恰好在每一列出现两次。

可以证明,在这种情况下,原 \([1,n]\) 行和 \([n+1,2n]\) 行都能组成 Latin Square。因为如果不是的话,就一定存在某个数在一列出现三次或以上。

那么你可以发现,这时如果你把相互矛盾的行连边,它会构成一个二分图。

注意到此时的性质是,每一条边的两个端点有且仅有一个被选中。

你删除二分图的随意一个连通块,然后把答案乘 2 就行了。

重复上面的步骤。

2022.2.19

你妈逼的我忍不了了,我去做集训队作业去了。

CF913F Strongly Connected Tournament

好像挺牛逼的。

我感觉我的问题就是写不出来式子(你这个叫问题吗 /fn )。

CF600F Edge coloring of bipartite graph

毛估估一下答案是最大度数。

至于方案,对于 \((u,v)\) 搞出 \(mex(u),mex(v)\)。

然后强制这条边染上 \(mex(u)\)。

如果有冲突,就跑一个类似匈牙利的强制替换就行了。

CF504E Misha and LCP on Tree

一眼二分哈希。

CF505E Mr.Kitayuta vs. Bamboos

首先想到二分答案,然后想到了要砍的次数,之后想到了在后面砍比在前面砍优,所以能在前面砍就在前面砍。

那么这个限制只需转化为:必须在时间 \(i\) 之后砍的次数不超过 \((m-i)k\) 。

对于每一棵树,就可以独立考虑。注意到最终的砍树方案会由一些 \(p\) ,以及一次 \(d \leq p\) 组成。

那么结合上面这个限制,就比较容易考虑了。

标签:二分,记录,然后,这题,如果,2.19,就行了,2.14,2022.2
来源: https://www.cnblogs.com/ZHANG-SHENG-HAO/p/15912263.html