![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
题解
文章平均质量分 51
拿不到名字的拓拓
这个人很懒,并没有什么简介。
展开
-
CodeForces - 1271D
很多时候我们会为带有 gcd\gcdgcd 的和式的处理而发愁,因为 gcd\gcdgcd 实在不好处理,于是我们一般会退而求其次去枚举 gcd\gcdgcd 来求解问题。然而,找到所有最大公约数为给定值的数对是一件非常困难的事,这件事情往往会成为卡住我们思路的关键,况且大多数时候题目的数据范围是不允许我们枚举数对的。莫比乌斯反演是一个处理带有 gcd\gcdgcd 的和式的常用套路,他允许你把枚举最大公约数转化为枚举约数,这样处理起来会方便很多。莫比乌斯函数我们先考虑这样一个函数 μ(n)\原创 2021-11-18 13:55:50 · 64 阅读 · 0 评论 -
CodeForces - 1271D
显然对于每个城堡,派人越晚越好,我们令每个城堡只会在进行到最晚的能派人到这个城堡的时候考虑是否派人,对于派人,攻占完每一个城堡后考虑派人,显然先考虑重要性最大的。那么我们就可以进行 dp 了,设 $dp[i][j]$ 表示攻占完第 $i$ 个城堡后,有 $j$ 个人的答案。枚举当前城堡打完后会派出去几个人进行转移。```#include <bits/stdc++.h>#define mp(x, y) make_pair(x, y)#define pb emplace_back原创 2021-11-18 13:53:11 · 187 阅读 · 0 评论 -
E - Easy genes
E题目大意求长度为 lll 的不包含子串 101 和 111 的 01 串有多少个。solution考虑对于 01 串 101 和 111 建立关于字符串匹配的自动机(AC自动机),如图:当匹配到 444 号节点的时候说明匹配到了一个 101 或者 111,我们最终要求的就是匹配不到 444 号节点的串的数目。记录 f[i][j]f[i][j]f[i][j] 为当前填到第 iii 个数,匹配到自动机上的状态 jjj 的方案数,这样我们就可以根据自动机的转移来建立 dp 方程如下:f[i][0原创 2021-07-20 23:13:57 · 171 阅读 · 0 评论 -
CodeForces - 732D
二分答案即可。在一个天数 xxx 内考虑,显然考试越往后拖越好,于是尽量把考试往后拖。至于复习,当然是先考的先复习,判断一下就行了。注意细节#include <bits/stdc++.h>const int MAXN = 1e5 + 6;int n, m;int d[MAXN], a[MAXN], p[MAXN], pp[MAXN];bool check(int x) { int cnt = m; memset(p, 0, sizeof(p)); memset(pp,原创 2021-03-25 22:20:04 · 82 阅读 · 0 评论 -
Frogs - HDU5514
icpc沈阳2015的题目。容斥原理和数论的应用。题目大意为给你一个数组 a[i]a[i]a[i](a[i]a[i]a[i] 即为第 iii 只青蛙的步长) 和若干格子编号为 000 到 m−1m - 1m−1,对于任意的正整数 k,ik, ik,i,编号为 k∗a[i]mod mk * a[i] \mod mk∗a[i]modm 的格子会被占用,问所有被占用的格子的编号之和。首先对于一个 a[i]a[i]a[i],显然所有编号为 gcd(a[i],m)\gcd(a[i], m)gcd(a[i]原创 2021-02-01 19:10:04 · 109 阅读 · 0 评论 -
点分治
题目点这里大连2016 的 G 题,调了半天的点分。题目为给你一棵树,树上的每个点都有一个权值,求包含所有权值的路径数目。由于权值最大只有 101010,所以点分治的思路很明显了,枚举每条路径起点的同时枚举权值找终点,时间复杂度 O(2knlogn)O(2^kn\log n)O(2knlogn)。#include <bits/stdc++.h>const int MAXN = 5e4 + 5;struct Edge { struct Node *to; struct Edg原创 2021-01-29 18:41:43 · 118 阅读 · 1 评论 -
20200706D
题目点击这里题目大意给定一个长度为 nnn 的序列 aia_iai,共有 mmm 个询问,每次询问包含一个区间 l,rl, rl,r,求出满足 x,y∈[l,r],ax=ayx,y \in [l, r], a_x = a_yx,y∈[l,r],ax=ay 的所有数对 (x,y)(x, y)(x,y) 中 ∣x−y∣|x - y|∣x−y∣ 的最小值,即相等的两个元素之间的最小距离。解法不难想到对于 axa_xax 来说只有上一个和他相同的元素或者下一个和他相同的元素才有可能对答案造成贡献,所原创 2020-07-06 22:54:54 · 166 阅读 · 0 评论