首页 > 其他分享 >AtCoder随做

AtCoder随做

时间:2023-02-13 08:44:49浏览次数:56  
标签:lfloor AtCoder frac 题解 sum sqrt 随做 TBA

img

突然发现只有我没写过 AT。/kel/kel/kel

没写题解不意味着没做,有的忘了写或者太草率了就算了。

部分前言删了。

ABC020D

题解

\[\sum_{i=1}^n\operatorname{lcm}\{i,k\} \\=k\sum_{i=1}^n\frac i{\gcd\{i,k\}} \\=k\sum_{d|k}\frac1d\sum_{i=1}^ni[\gcd\{i,k\}=d] \\=k\sum_{d|k}\sum_{i=1}^{\lfloor\frac nd\rfloor}i[i\perp\frac kd] \\=k\sum_{d|k}\sum_{i=1}^{\lfloor\frac nd\rfloor}i\sum_{g|i,g|\frac kd}\mu(g) \\=k\sum_{d|k}\sum_{g|\frac kd}g\mu(g)\sum_{i=1}^{\lfloor\frac n{gd}\rfloor}i \\=k\sum_{T|k}(\sum_{d|T}d\mu(d))\sum_{i=1}^{\lfloor\frac nT\rfloor}i \\=k\sum_{T|k}M(T)S(\lfloor\frac nT\rfloor) \]

其中

\[M(n)=\sum_{d|n}d\mu(d) \]

\[S(n)=\frac{n(n+1)}2 \]

直接暴力计算即可。

ABC268

题解链接

AGC003D

题解

这种数论题目都很套路,感觉没啥意思。

简单来说,注意到 \(v\le10^{10}\),肯定是和 \(v^w\) 相关的复杂度了,其中 \(w<1\)。

首先把每个数的立方因子给除掉,则若 \(a,b>1\) 满足 \({}^3\!\!\!\sqrt{ab}\in\mathbb N\)(下称满足匹配),则其对答案的贡献为其中较大的出现次数;对 \(1\) 特殊处理即可。

显然只用质因数分解即可得到答案,考虑如何质因数分解。

除掉立方因子需要 \(O(n\pi(^3\!\!\!\sqrt v))\) 的复杂度,同时也能分解出其所有 \(\le{}^3\!\!\!\sqrt v\) 的因子,以及剩余部分。

考虑剩余部分 \(w\) 不会有超过 \(2\) 个质因子,且均 \(>{}^3\!\!\!\sqrt v\),考虑分类讨论:

  1. \(w=1\)。这个比较简单。
  2. \(w=p\),只用考虑 \(p\le\sqrt v\) 的质数,显然 \(p>\sqrt v\) 的部分一定无法匹配。
  3. \(w=p^2\),则可以开根找到 \(p\)。
  4. \(w=pq\),由于 \(p,q>{}^3\!\!\!\sqrt v\),\(w\) 必定无法匹配。

然后容易直接计算答案。

总复杂度 \(O(n\pi(^3\!\!\!\sqrt v)+\sqrt v+n\log n)\),其中 \(O(n\log n)\) 的贡献来自于 map(可以哈希表代替),\(\sqrt v\) 来自于线性筛素数(实践时可以写 bitset 埃筛)。

AGC005D

题解链接

AGC013D

题解链接

AGC038E

题解链接

AGC041F

题解

考虑贺题解!

AtCoder 阴间题还是不会做。

为了迎合题解,对行列转置。

枚举不可放车的行集合 \(A\);也即,之前枚举单点的方案中,\(A\) 中每行必定存在至少一个单点,且每个单点对应的行均出现在 \(A\) 中。

考虑每个连续段。(蒯图)

img

即,对于每一种颜色,考虑其单独某一列上的情况。

显然这对应了一个区间的行,设为第 \(l\sim r-1\) 行。

设 \(len=r-l,p=\sum_{k\in[l,r)}[k\in A]\)。

则我们单纯计算两种贡献。

  • 当 \(p\) 个格子均不被选择时,有 \(2^{len-p}\) 种选择剩余部分的方法。
  • 否则,有 \(\sum_{k=1}^p(-1)^k\binom pk=-[p>0]\) 种方法。

这样子容斥,会统计入某些 \(A\) 的情况,使得其中某些行不对应存在原 \(S\) 中元素。

考虑钦定 \(A\) 一部分行 \(B\) 不对应存在原 \(S\) 中元素。

即枚举 \(B\subseteq A\),额外带上容斥系数 \((-1)^{|B|}\)。

设 \(q=\sum_{k\in[l,r)}[k\in B]\)。

再次单纯计算两种贡献。

  • 当 \(p\) 个格子均不被选择时,有 \(2^{len-p}\) 种选择剩余部分的方法。
  • 否则,有 \(\sum_{k=1}^{p-q}(-1)^k\binom{p-q}k=-[p>q]\) 种方法。

于是贡献即为 \(2^{len-p}-1+[p=q]\)。

换言之,答案即为

\[\sum_A\sum_{B\subseteq A}(-1)^{|B|}\prod_{\text{每一段合法的 }l,r}2^{len-p}-1+[p=q] \]

继续贺题解。

img

\[p_{0,8}=p_{0,3}+[3\in A]+p_{4,8} \]

\[[p_{0,8}=q_{0,8}]=[p_{0,3}=q_{0,3}][3\notin A/B][p_{4,8}=q_{4,8}] \]

于是考虑树形 dp。

答案柿子是积和形式,尝试运用分配律。

设 \(f_{u,p,[p=q]}\),随便对中间元素分 \(3\) 类讨论一下即可。

TBA

题解

TBA

题解

TBA

题解

TBA

题解

TBA

题解

TBA

题解

TBA

题解

TBA

题解

TBA

题解

TBA

题解

TBA

题解

TBA

题解

TBA

题解

TBA

题解

标签:lfloor,AtCoder,frac,题解,sum,sqrt,随做,TBA
From: https://www.cnblogs.com/myee/p/ATC-record.html

相关文章

  • AtCoder Beginner Contest 289
    A-flip(abc289a)题目大意给定一个\(01\)字符串,翻转\(01\)输出解题思路模拟即可神奇的代码#include<bits/stdc++.h>usingnamespacestd;usingLL=longlo......
  • AtCoder Beginner Contest 289
    A.flipC++Code#include<bits/stdc++.h>usingi64=longlong;intmain(){std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::str......
  • Atcoder Beginner Contest 289
    ContestResult做出了\(\texttt{A}\sim\texttt{F}\),\(\texttt{G}\)题有点思路,但时间不够了。\(\texttt{E}\)题状态设计太慢,复杂度其实也没算明白,\(\texttt{F}\)题......
  • AtCoder Beginner Contest 288
    E.WishList假设你需要选择\(B_1,B_2,..,B_k\)这\(K\)个元素编号。假设当前你选择\(B_i\)元素,且前面\(i-1\)个元素\(B_1,B_2,...,B_{i-1}\)选择了\(x\)个(\(......
  • AtCoder Beginner Contest 288
    《D-RangeAddQuery》题目大意:给定一个长度为n的序列s,和一个整数k我们可以对s进行无数次如下操作:1、选定s中的一个下标i(1<=i<=n-k+1)2.......
  • AtCoder Beginner Contest 288
    A-ManyA+BProblems签到#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongint32_tmain(){intn;cin>>n;for(inta,b......
  • AtCoder Beginner Contest 288
    A-ManyA+BProblems(abc288a)题目大意给定\(A\),\(B\),输出\(A+B\)。解题思路范围不会爆\(int\),直接做即可。神奇的代码#include<bits/stdc++.h>usingname......
  • AtCoder Beginner Contest 235 G Gardens
    洛谷传送门考虑不要求每个盒子至少放一个球,答案即为\(\sum\limits_{i=0}^A\binom{n}{i}\times\sum\limits_{i=0}^B\binom{n}{i}\times\sum\limits_{i=0}^C\binom{......
  • AtCoder Beginner Contest 168 C - : (Colon)
    题意:时针转过的角度:​分针转过的角度:。AC代码:constintN=1e6+50;constdoublepi=acos(-1.0);intmain(){doublea,b,h,m;cin>>a>>b>>h>>m;lon......
  • AtCoder Beginner Contest 168 D - .. (Double Dots)
    题意:有个房间,在这些房间中两两连次条边,问除了第一个房间,其他房间走到第一个房间的最短路径,输出这个房间所连的上一个房间,如果走不到,输出.AC代码;constintN=......