04 2022 档案

摘要:难度虚高。 看到修改 + 区间查询 , 不难想到 线段树 。 首先我们可以考虑维护 差分序列 而不是原序列。 那么一个等差数列长这个样子 : x y y y … 那么想到充分利用首项,考虑从后往前贪心,在一堆相同的后缀前面再塞一个不同的数。 那么怎么表示一个区间的状态呢 ? 我们发现只有两种情况。 阅读全文 »
posted @ 2022-04-23 22:06 仰望星空的蚂蚁 阅读(7) 评论(0) 推荐(0) 编辑
摘要:概率 / 期望 dp 基础题。 有一个二叉树的背景。 这题有两个值得学习的 trick 。 先看第一问。假设有 i − 1 i-1 i−1 个叶子结点,每个节点的平均深度为 f i − 1 f_{i-1} fi−1​ 。 然后随机选一个节点复制。这个节点的期望深度为 f i − 1 f_{i-1} 阅读全文 »
posted @ 2022-04-23 08:08 仰望星空的蚂蚁 阅读(3) 评论(0) 推荐(0) 编辑
摘要:。。。 结论:如果连通块大小为 k 时能够成立,当且仅当有 n/k 个节点满足 k | 子树大小 考虑一种合法的划分方案,我们可以直观地想象出它们之间恰好有 n/k 个点满足 k | 子树大小。 反之,如果我们有这么 n/k 个点的话,将这 n/k 个点作为 “关键点” ,分出来的 n/k 个连通块 阅读全文 »
posted @ 2022-04-20 22:18 仰望星空的蚂蚁 阅读(4) 评论(0) 推荐(0) 编辑
摘要:原理 令 p [ x ] p[x] p[x]表示 x x x到 f a [ x ] fa[x] fa[x]的路径权值,有下式: s [ x ] = p [ x ] + s [ f a [ x ] ] s[x]=p[x]+s[fa[x]] s[x]=p[x]+s[fa[x]] 可以在路径压缩时完成这一 阅读全文 »
posted @ 2022-04-18 11:54 仰望星空的蚂蚁 阅读(18) 评论(0) 推荐(0) 编辑
摘要:搜索 。。。 平局和胜负局的数目可以求出。 然后按照 1-2,1-3,1-4 … ,1-n 的方式进行搜索。 可以得到 96 pts 。 如果我们当前局面之前搜索过的话,可以哈希后用 map 存下来。 实际上我们不用把当前是哪两个球队比赛记录下来,而是在一支球队搜索完过后判断剩下的球队的分数是不是之 阅读全文 »
posted @ 2022-04-16 14:47 仰望星空的蚂蚁 阅读(10) 评论(0) 推荐(0) 编辑
摘要:这题呢,暴露出来一个问题,就是 我对暴力数据结构的掌控力还是不强 导致最后手忙脚乱还是没调出来。(当然思维上也有一些问题,有点想复杂了) 第一种做法,树状数组。 ∑ i = 1 n ∑ j = i n ∑ k = j n d i = ∑ i = 1 n d i ( n − i + 1 ) ( n − 阅读全文 »
posted @ 2022-04-16 14:17 仰望星空的蚂蚁 阅读(10) 评论(0) 推荐(0) 编辑
摘要:法一. 法二. 法三.(本人的作死方法,调了一晚上) x j = p − ( i − j ) 2 x_j=p-(i-j)^2 xj​=p−(i−j)2 x j + 1 = p − ( i − j − 1 ) 2 = p − ( i − j ) 2 − 1 + 2 ( i − j ) x_j+1=p- 阅读全文 »
posted @ 2022-04-15 22:26 仰望星空的蚂蚁 阅读(6) 评论(0) 推荐(0) 编辑
摘要:与非(nand)是非常强大的位运算,可以表示出所有其他位运算: not A = A nand A A and B = not (A nand B) A or B = (not A) nand (not B) A xor B = (A and not B) or (not A and B) 相当于我们 阅读全文 »
posted @ 2022-04-13 22:22 仰望星空的蚂蚁 阅读(6) 评论(0) 推荐(0) 编辑
摘要:熊神仙的做法好难想到。。。 暴力转移是这样的: d p i , x , y = ∑ d p i − 1 , x − x 0 , y − y 0 ( x 0 + y 0 ≤ a i ) dp_{i,x,y}=∑dp_{i-1,x-x_0,y-y_0}(x_0+y_0\leq a_i) dpi,x,y​ 阅读全文 »
posted @ 2022-04-09 20:11 仰望星空的蚂蚁 阅读(3) 评论(0) 推荐(0) 编辑
摘要:官方题解写得像 shit 首先看到 对称 ,不难想到二维 hash。 那么我们判断左右和上下翻转后的矩形是不是和原来的完全相同。 枚举中心位置,然后二分。 #include<bits/stdc++.h> #define ull unsigned long long using namespace s 阅读全文 »
posted @ 2022-04-09 19:56 仰望星空的蚂蚁 阅读(7) 评论(0) 推荐(0) 编辑
摘要:我是个调了一下午的蒟蒻 待会来讲一下这个算法的原理。 理论上,这个做法可以处理所有 二分图匹配最小字典序 问题。 #include<bits/stdc++.h> #define inf 0x3f3f3f3f using namespace std; const int N=55*55; //判断是否 阅读全文 »
posted @ 2022-04-09 17:24 仰望星空的蚂蚁 阅读(10) 评论(0) 推荐(0) 编辑
摘要:#include<bits/stdc++.h> using namespace std; const int N=10005,M=50005; vector<int> son[N]; int dfn[N],low[N],num,s[N],out[N],top,cnt; int scc[N]; int 阅读全文 »
posted @ 2022-04-08 20:13 仰望星空的蚂蚁 阅读(4) 评论(0) 推荐(0) 编辑
摘要:其实我不会 阅读全文 »
posted @ 2022-04-06 22:16 仰望星空的蚂蚁 阅读(8) 评论(0) 推荐(0) 编辑
摘要:比较意会 考点:古典概型 。 答案是 ( k + 1 ) n − 1 ( k + 1 − n ) k n \frac{(k+1)^{n-1}(k+1-n)}{k^n} kn(k+1)n−1(k+1−n)​ 。 不妨看成有 k + 1 k+1 k+1 个点构成圆环 。每个人选任意位置坐下的方案为 ( 阅读全文 »
posted @ 2022-04-04 17:11 仰望星空的蚂蚁 阅读(9) 评论(0) 推荐(0) 编辑
摘要:括号序列 原理:对原树进行一次 dfs 遍历,到一个节点就加入一个 左括号 ,再加一个表示节点编号的 辅助点 ,回溯时再加入一个 右括号 。 比如: 构建 void dfs(int u,int topf) { val[++cnt]=0; c[cnt]=1; val[++cnt]=-1; //这个地方 阅读全文 »
posted @ 2022-04-03 10:17 仰望星空的蚂蚁 阅读(41) 评论(0) 推荐(0) 编辑
摘要:模拟题 红靶子的我们先不考虑。 如果是 {1,2,2} , {2,2,3} 这种只涉及两种倍数的话,我们想到不定方程: ax+by =c 的通解形式(a,b,c 为常数),从而探讨 x,y 在规定取值内是否有解。 探讨 {1,2,3} 的情况。 这个时候不难发现 x ∈ [ 1 , 6 k ] x\ 阅读全文 »
posted @ 2022-04-02 14:06 仰望星空的蚂蚁 阅读(6) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示