随笔分类 - 思维题集
摘要:原题链接 题意:给出 \(n\) 个数 $a_1, a_2, a_3···a_n$求问有多少个四元组 \((i,j,k,l)\),使得这个四元组满足下列条件:\(1 \leqslant i < j < k \leqslant l\)。 题解:就是枚举中间的两个 \(j,k\),真的就是没有想到。 代
阅读全文
摘要:原题链接 题意:很多链,然后让每条链中各个元素都要挨在一起,然后给他们每个元素分配层数,层数相同的要以元素大小从左往右。 题解:就是两个栈模拟一下贪心即可。 代码: #include <algorithm> #include <cstring> #include <cstdio> #include
阅读全文
摘要:原题链接 题解:解决了历史遗留问题。很显然的是,这样操作总和不会变,然后所有 \(gcd\) 的可能的取值都是会是 \(sum\) 的因子,所以可以 \(O(\sqrt {sum})\) 的时间复杂度来枚举 \(gcd\),然后 \(O(n)\) 遍历用最小操作来看是否是小于 \(k\),最后取最大
阅读全文
摘要:题解:又是dp想不出来的。\(dp_{i, j}\) 代表了,第 \(i\) 位时(从左到右),余数为 \(j\) 的数量。然后发现,状态转移的时候,如果 \(s_i = ?\) 则 \(dp_{i,(j * 10 + k) \% 13} =\sum dp_{i-1, (j * 10 + k) \%
阅读全文
摘要:题目链接 题解:想到了菊花图,没想到最值就是一棵树,然后是菊花图,然后要让合法点对减少的操作,就是给两个叶子连边,这样就删除了。 代码: #include <iostream> #include <algorithm> using namespace std; typedef long long l
阅读全文
摘要:题目链接 题意:小G定义LY数对为两个数x,y在二进制的异或操作后恰好有两位是1。小G现在有两个数组a,b长度分别为n,m。现在小G想知道有多少对i,j满足(1<=i<=n,1<=j<=m),满足a[i]和b[j]是LY数对。 题解:非正解暴力的做法是 \(O(n\times 30\times 29
阅读全文
摘要:原题链接 题意:你有两种轮胎,雪地胎和普通轮胎。雪地胎可以在任何路况行驶,而普通轮胎只能在不下雪的时候行驶。你现在知道你的雪地胎最多能用 \(k\) 天。现在告诉你总天数 \(n\),和每天是否下雪。问你,最少要换几次轮胎,才能保证下雪天都在用雪地胎,并且雪地胎使用天数不超过 \(k\) 天。你初始
阅读全文
摘要:原题链接 题意:给一个数列和m,在数列任选若干个数,使得他们的和对m取模后最大 \(1<=n<=30\) 题解:首先看到 \(n\) 非常小,考虑暴力枚举,显然纯暴力是 \(O(2^n)\) 的复杂度,过不了,那么只能是考虑别的方法,显然 \(O(2^{\frac{n}{2}})\) 是可以过的,于
阅读全文
摘要:原题链接 题意:如果 \(A_i\) 和 \(A_j\) 同色,那么必须满足 \(i < j\) 并且 \(A_i < A_j\),求最小的颜色来涂满整个序列。 题解:很显然的是,要求最长不上升子序列,然后因为只能求最长上升子序列,和最长不下降子序列,然后又已知结论最长不上升子序列又是可以转化为,原
阅读全文
摘要:原题链接 题意:Akari 有 \(n\) 种不同的花,她可以选择其中一种或多种花做成花束。但是 Akari 不喜欢花的种数恰好为 \(a\) 或 \(b\) 的花束。求出她组合花的合法方案总数,对 \(10^9+7\) 取模。 \(2 \le n \le 10^9\) \(1 \le a < b
阅读全文
摘要:原题链接 题意:给定一个奇数 \(n\),将它表示为之多三个的素数之和。 题解:首先了解,哥德巴赫猜想是当 \(n>=4\) 并且 \(n\) 是一个合数时,必然存在两个素数相加。因此,很容易的是,如果判一下,这个数是素数,那么直接就输出这一个数就可以了。然后,引用一句: 利用的关键性质是这样的:对
阅读全文
摘要:原题链接 题意:给出 \(n<=1e5\) 个旅店的位置,然后人一天最远走 \(L<=1e9\) 长度的路,必须在旅店住一晚上,然后有 \(m <= 1e5\) 个询问,要求出从 \(a\) 旅店到 \(b\) 旅店最少要多少天才能到。 题解:只想到了从 \(n\) 和 \(n-1\) 双指针得出
阅读全文
摘要:原题链接 题意:给出 \(n <= 1e5\) 个点在二维平面的坐标,并且给出每个点的运动方向,点不会停止,会一直运动下去,速度为1m/s,然后求过了多少时间,\((X_{max}-X_{min})*(Y_{max}-Y_{min})\) 的值最小。 题解:想到了可能是一个凹函数,但是没想到用三分就
阅读全文
摘要:原题链接 题意:给出 \(n \times m\) 的矩阵,都小于 \(2e5\) ,求从 \(n \times m\) 个矩阵中拿出 \(k <= n \times m\) 个点,在所有方案中,求每个方案中,每个点距离其他点的曼哈顿距离之和,然后求所有方案的各个距离之和的总和。 题解:枚举横着两个
阅读全文
摘要:原题链接 题意:给出 \(n\times m\) 的矩阵,全部由26个小写字母构成,然后要求构造一种矩阵,要求和原矩阵差别最小,保证每行只有两种字母,列不做要求。保证每个字母相邻是不相同的。 题解:没想到构造题也能用dp来做,就是按行dp,可以发现,就好像是枚举所有可能性,然后取 \(max\) 的
阅读全文
摘要:原题链接 题意:给出 \(1 <= n <= 100000\) 的大小的数,然后要求 \(a \times b \neq c\) 并且 \(d(d(a) \times d(b) ) = d(c)\) ,d函数是数根的意思。 题解:确实不懂数根的知识。数根有些性质,即 \(a \times b = c
阅读全文
摘要:AT2022 [ARC059D] バイナリハック / Unhappy Hacking 题意:给长度$n ⇐ 5000$和一个长度$len ⇐ 5000$的$01$串,要求用键盘$0,1$和回退键来输入,正好花费$n$次恰好输入成$s$串,求方案数。 题解:方案数量大概率是$dp$,设$dp$数组$d
阅读全文
摘要:AT4724 [ABC128D] equeue 题意:给出序列$n<=50$长度大小,然后给出$k ⇐ 100$操作,可以从头部或者尾部拿出一个元素放到手里或者将某个手里的元素塞到序列,求手里最大和。 题解:枚举从头拿和从尾拿的操作,然后可确定放手的次数,然后就贪心得放出负数的数,最后手里得数就是最
阅读全文