首页 > 其他分享 >AGC058D Yet Another ABC String

AGC058D Yet Another ABC String

时间:2022-08-16 19:59:24浏览次数:82  
标签:ABC frac String 枚举 abc 连续 AGC058D Yet

link

由于限制是循环的考虑用连续段容斥。直接容斥的做法是枚举一组限制,并带上 \((-1)^c\) 的系数:某些相邻的三个数必须 \(\in 123, 231, 312\),相交的限制会互相影响得到连续段。

直接枚举连续段,设长度为 \(i\) 的连续段系数为 \(f(i)\),连续段中最后三个数的限制必须选择,选了之后枚举下一个选的位置,可以得到递推式 \(f(i) = -(f(i-1)+f(i-2))\),归纳得 \([f(i)] = [1, 0, -1, 1, 0, -1, \dots]\)。

令 \(n = A +B + C\),直接算是 \(O(n^2)\) 的,不过可以写生成函数:$$F(x)=\frac{1}{1-\frac{a+b+c-3abc}{1-abc}}$$

将 \(1 - abc\) 移到分子上可以 \(O(n)\) 算。

标签:ABC,frac,String,枚举,abc,连续,AGC058D,Yet
From: https://www.cnblogs.com/RiverHamster/p/agc058d.html

相关文章

  • abc264 E
    题目链接:clickhereSolution:首先考虑维护连通块,但是在删边的条件下进行维护连通块显然比较复杂如果不是删边,而是增添边,那么连通块的维护难度将大大减少,那么我们如何从......
  • Atcoder ABC169
    A  直接输出\(a×b\)即可inta,b;std::cin>>a>>b;std::cout<<a*b<<"\n";B  将所有的\(N\)个数乘起来看是不是大于\(10^{18}\),很明......
  • 20220505模拟赛总结(ABC237)
    总结初一第一,竞赛班第二还可以,为了照顾提高班来的四个同学放了四个水题,可惜他们做的不是很理想,希望他们下次可以获得满意的成绩这次做的其实是AtCoderABC237A.NotO......
  • ABC 264 C - Matrix Reducing(思维)
    https://atcoder.jp/contests/abc264/tasks/abc264_c题目大意:给定n*m的a矩阵,x*y的b矩阵问能不能删除若干行和列使a变成b?SampleInput14512345678910......
  • ABC EF 板刷笔记
    菜鸡的刷题记录owo!偶尔也会更一些高质量D题。ABC264E比较秒的一道题。首先将操作反向处理,将摧毁变为修建,跑dsu维护答案即可。总之就是先检查在不在一个连通块,然后发......