- 博客(19)
- 收藏
- 关注
原创 ABC363 D - Palindromic Number
就是这个所求回文数的前半数位了,将前半数位翻转加上去就是答案了。由于数可能会超过LL,我们使用字符串模拟的做法。注意最后求答案时,对于奇数长度的数,我们拼接前后半段时,需要将前半段的末尾去掉,保证是一个奇数长度的数。有了这个重要结论,我们就可以缩小问题了。这样的形式的,由于是回文的我们只看前半数位,假设当前求第。大的数,我们拿出前半数位,前半数位的数加上。我们先写出几项找找规律,设回文数长度为。大的数,我们枚举第N大的数的长度。我们发现长度为d的回文数,只有。你需要输出第N大的回文数。,这样就缩小了问题。
2024-08-01 09:55:12
403
原创 AtCoder Beginner Contest 364(A-F)题解
给你一张有N + Q个点的图,有Q次操作,每次操作给你三个数,L,R,W。我们将Li与N + i连接后,与Li已连接的点都不需要与N+i进行连边了,我们可以跳过这些点,由于操作是连续的,与Li已连接的点也应该是连续的,所以我们跳过的点是一个区间。这题我们需要二分答案,假设答案为D,则[x - D, x + D]这个区间内必有>=K个点,距离变大,区间变大,区间内的点数不会变少,这样具有单调性的问题,可以使用二分去做。给你了N盘菜, 当你连续吃两盘甜的菜就死了,问能不能吃完所有的菜。
2024-07-29 21:10:51
494
原创 数据结构-树状数组
树状数组是一种支持单点修改,区间查询的数据结构。它能过维护具有结合律和可差分的信息。作为引入我们看看下面这个问题: 假设我们需要知道a[1]—a[7]的和,我们会怎么做?一个简单的想法是前缀和,假设我们已经知道了a[1–4],a[4 – 6]和a[7]的值,显然将这个三值相加就是答案了。这也就是树状数组的核心了,将数据分段,维护一个特殊的前缀和。先看看树状数组的结构:c[1] 管辖 1-1c[2] 管辖 1-2c[3] 管辖 3-3c[4] 管辖 1-4。
2024-07-26 09:57:21
454
原创 双指针(尺取)
双指针是一种灵活的技巧,简单来说你需要同时维护两个指针,指向序列,链表(甚至更复杂的数据结构)上的位置或结点, 通过同向或相向移动来维护信息。
2024-05-12 12:10:35
392
1
原创 [蓝桥杯] 平均
题目要求0--9每个数出现的次数都为n/10。若一个数出现的个数为k , k > n/10的话需要将k - n/10的多余部分转换为其他数。这个操作我们贪心处理,优先将转换花费小的元素转换。这样可以得到最小花费。
2024-03-14 21:01:57
447
原创 [蓝桥杯] 太阳
题目要求被太阳照亮的线段的个数。最上方的线段最先被照射,按照这个思路,我们先对线段按纵坐标大小排序。所有被照射到的线段会在X轴上留下一段"影子", 被别其他线段的影子覆盖的线段是无法被照射到。我们将题意转换,按纵坐标降序,每个线段在太阳照射下会留下两个在X轴上的端点L, R,[L, R] 内所有的点都被染黑。若是一个线段的L, R内所有的点都被染黑,则它无法被照射到。这就是经典的区间染色模型了。), 线段的一个端点(代入得到方程: (
2024-03-12 16:03:32
1278
1
原创 [蓝桥杯] 阶乘的和
考虑这个问题: 式: x!,(x < y < k) 的最大公因数是否一定是x!= (x + 1)!所以我们只需要不断更新最小的x!,最后无法变得更大的x!继续观察样例: 2!的最大公因数为 3!,显然(x + 1)一定不是最大公因数。最大公因数只能为x!
2024-03-09 23:45:18
1196
1
原创 [蓝桥杯] 互质数的个数
思路: 求小于等于n与n互质的个数,这与欧拉函数的定义相符。(n),表示为小于等于n与n互质的数的个数。我们过快速幂求a^(b - 1) 和试除法求欧拉函数。,pi表示n的质因子。
2024-03-05 13:44:29
1466
原创 [蓝桥杯] 子矩阵
先用单调队列解决“滑动窗口”类问题的思路,求出行的最大值与最小值。再用两个单调队列求出,求出这些‘窗口"的最大值和最小值。
2024-03-04 21:17:33
662
1
原创 3774: Pills
思路: 卡特兰数板子题。由于只有先选了整片的药片才有半片的药片能选。我们可以这样转换题意: 有一个由n个0和n个1组成的字串,且满足所有前缀字串的1的个数不超过0的个数,这样的字串有多少个。这与卡特兰数的定义相符。题目大意:你有N个相同的完整的药片, 每天需要吃半片,求吃药的方案数。
2024-02-29 21:52:47
428
原创 [蓝桥杯] 砍树
假设可以将A,B 分为两个不同的联通块,它们间会有若干条条‘’关键路径‘’连接两个连通块。对于每组(ai, bi) 都必然经过这些‘’关键路径‘’, 所以‘’关键路径‘’经过m次。我们对每组(ai, bi)路径上的边 + 1,最后经过m次的边就是答案, 通过 树上边差分 和 LCA 处理下即可。树上边差分 + LCA。
2024-02-28 23:02:11
578
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人