AT 经典90题(061-090)

61.Deck

直接使用 deque 模拟即可。

62.Paint All

考虑建图。xy 表示 x 要在 y 后面涂黑。考虑一个点能作为最后一个涂黑的点当且仅当他的要求里有一个是自己,于是把这种点入队。最后看能不能跑到所有点即可。

63.Monochromatic Subgrid

考虑先枚举选哪些行,然后看有多少列的数是完全相同的,最后从这些数中找到出现次数最多的即可。

64.Uplift

动态维护差分数组即可,每次的答案即为差分数组的绝对值之和。

65.RGB Balls 2

先考虑平方级别的暴力,不难发现可以枚举第一个球的数量,然后后两种球的数量和是一定的,这个贡献是一个卷积的形式,如果我们暴力算,时间复杂度就是平方的,如果使用 NTT,就可以过了。注意不能使用 FFT,因为会被狠狠卡精度。

66.Various Arrays

枚举两个位置和位置上的值,把他们产生逆序对数量的期望加上即可。

67.Base 8 to 9

考虑写进制转换函数直接模拟即可。

68.Paired Information

设第 1 项为 0,然后我们推出每一项,记为 val。不难发现位置奇偶性相同的两项代表他们的差,位置奇偶性不同的两项代表他们的和。于是我们用并查集维护两位置是否连通。如果是,考虑如果位置奇偶性相同,答案为 ayax+v,否则为 ay+axv

69.Colorful Blocks 2

先特判掉 n2。否则答案就是 (k2)n2×(k1)×k,使用快速幂计算即可。

70.Plant Planning

两个坐标分别取到该维中位数即可。

71.Fuzzy Priority

考虑对所有 (a,b) 建一条 ab 的边然后进行深搜,深搜的时候使用拓扑排序向排列里加数(入度为 0 时就可以加进去了),如果排列加满了这就是一种合法方案。最后当已经有 k 个方案时直接跳出去。

72.Loop Railway Plan

直接写一个深搜即可,只需记录一下步数和特判下一步是不是起点。

73.We Need Both a and b

我们设 fu,0/1,0/1 表示以 u 所在连通块里有没有 a,有没有 b 的方案数。

转移就是 fu,1,0jsonu(fj,1,0+fj,1,1),fu,1,1jsonu(fj,1,0+fj,0,1+2×fu,1,1)。这是 cua 时的转移。其余情况同理可得。是否乘 2 要看这个东西是必须选,必须不选还是都可以。

74.ABC String 2

考虑先动左边的。设最前面的是第 0 位。不难发现如果第 i 位是 b,会造成 2i 的贡献,如果第 i 位是 c,会造成 2i+1 的贡献。

75.Magic For Balls

考虑每次尽可能把质因子数量分成两半,看多少次每个数的质因子都是 1 即可。

76.Cake Cut

先判断和是不是 10 的倍数。然后把数组复制一份接到后面,判断有没有两个前缀和数组相减的值为和的十分之一即可。

77.Planes on a 2D Plane

不难发现要求的东西是二分图完美匹配。于是建边跑网络流即可。输出方案就是找到一部内点用 0 权边连接的另一部的点即可。

78.Easy Graph Problem

考虑用桶统计每个点周围有多少个点的编号小于自己的编号即可。

79.Two by Two

考虑直接从上到下,从左到右模拟,然后先判断 ab 是否完全相同。如果是直接输出记录的次数即可。

80.Let's Share Bit

考虑容斥。先枚举必须不满足哪些(设这些数有 s 个),然后看剩下多少位(设这个数为 t)。如果 s 是偶数,则答案加上 2t,否则减去 2t

81.Friendly Group

不难发现值域很小,于是做一个二维前缀和,查询大小 k+1 的方阵里有多少点即可。

82.Counting Numbers

考虑对于数的长度为 i 的部分分别计算即可。注意特判 1018

83.Colorful Graph

考虑根号分治。对于度数小于根号的点直接在自己和临界点上打标机,否则在自己上打标记。判断颜色的时候只需要查询自己和周围度数大于等于根号的点的标记即可。

84.There are two types of characters

设当前点为 l,二分找出其后面第一个不同的东西 r,会造成 nr+1 的贡献。

85.Multiplication 085

先找出所有因数,然后枚举前两个数,判断最后一个数是否符合条件即可。

86.Snuke's Favorite Arrays

考虑每一位有多少种方案,直接枚举每一位是多少,然后暴力判断即可。最后方案数就是每一位的东西乘起来。

87.Chokudai's Demand

考虑二分出答案区间的左右边界即可,注意判答案为 0 的情况。

88.Similar but Different Ways

考虑搜索剪枝,如果已经有答案直接返回即可。

89.Partitions and Inversions

考虑一个动态规划,fi 表示划分前 i 个数的方案数。不难发现 i 的转移来源于 [j,i1],考虑用双指针求出 j,然后前缀和优化一下即可。

90.Tenkei90's Last Problem

首先 k=1n,k<=104 可以分别用两种 dp 来写。后一种 dp 可以先使用多项式除法以及 fft 优化。接着再使用高速 Kitamasa 法优化一下即可(这时就不用特判 k=1 了)。

posted @   zxh923  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示