摘要: Interesting Punch-Bowl 思路 1,水肯定从高往低处流,周围的格子就不用考虑了 2,首先考虑每个点在它所在行和列中能装的最多的水,即:在每行中,它左边最高的点和右边最高的点的最小值是该点在这一行中能装的最多的水,列同理,取行和列的最小值即可。 3,当所有点的在行和列中能取的最大值 阅读全文
posted @ 2022-05-07 11:09 1564269628 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 咕咕的搜索序列 思维 踩坑 1,观察完整的dfs序,即后序遍历,以r为子树的dfs序一定是连续的,且最右边为节点r。 2,故有等式: 设 该树的dfs序为 S, 以r为子树的dfs序的区间为[x, y] 则有 : S[y] = r, 最右边为点r y - x + 1 = size[r] 该区间的长度 阅读全文
posted @ 2022-05-06 16:21 1564269628 阅读(38) 评论(0) 推荐(0) 编辑
摘要: Childhood dream 搜索 1,“天赋异禀”, “足够机智” 又是一道劝退题。。。 2,A 前面的数字说明与答案相比,有多少个位置上的数字是相同的。 B 前面的数字说明与答案相比,有多 少个数字是相同的,但是位置不一样。 观察这句话发现,毫无逻辑,想到的只有暴力。如果存在A前面的数大于3的 阅读全文
posted @ 2022-05-05 15:14 1564269628 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 大小接近的点对 树状数组 1,不需要什么树上莫队算法,主要我也不会,根本没见过这个算法,太菜了。 口胡一下莫队吧,应该可以跑一个dfs序,然后只需要求dfs序中 [l, r]之间满足大小接近的点对数量就行了,但是莫队我不太熟悉,留坑🕳 2,dp的思想,f[root] = sum(f[son]) + 阅读全文
posted @ 2022-05-05 11:52 1564269628 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 树上逆序对 思维 1,看到逆序对,还是树上和父节点有关系的,就想到树状数组来统计小于等于x的数的个数,只需维护一下该点到根节点的树状数组即可。dfs正好满足。 2,只求一边好求O(n),但是这可能要m次,就不能暴力了,每次处理最多 O(1) 或 O(log(n)) 的复杂度。 3,在线算法不好想,故 阅读全文
posted @ 2022-05-04 11:24 1564269628 阅读(80) 评论(0) 推荐(0) 编辑
摘要: Basic Data Structure 思维 1,如果有0,那么前面的只要有数即为1. 2,故只需统计最后一个0的位置和该位置后的1的数量,可以用下标求解。 3,要手写双端队列,不要有deque ,没法存位置下标信息。 /* hello world! Just do it! start time: 阅读全文
posted @ 2022-05-02 12:01 1564269628 阅读(23) 评论(0) 推荐(0) 编辑
摘要: Coconuts 离散化 离散化判断联通块的个数还可以,但是这题竟然还让输出每个连通块的数量,除了签到题,其它题都太难了吧。 离散化墙的位置。 离散x坐标时,在离散x0 时,还要加入 x0 - 1该点也要进行离散化,才能确保两个不相邻的两点在离散化后仍然不相邻。 同时,每个点离散化后的坐标应该有一个 阅读全文
posted @ 2022-05-02 10:19 1564269628 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 区区区间间间 思维 观察到这就离胜利不远了 知道a[i] 的 左扩展 l[i] 和 右扩展 r[i] 时, 则以a[i] 作为最大值的区间个数可以计算出来 两边的数组合,加 一个端点是i ,另一个端点在 l[i] ~ r[i]中。 注意l[i] 取 >= 时,r[i] 应取 < 才能保证不重不漏。 阅读全文
posted @ 2022-04-30 11:21 1564269628 阅读(17) 评论(0) 推荐(0) 编辑
摘要: array 观察 观察输入可知 a和b数组中,大部分必定全为0!!! 故 思维 a 和 b中可多都是0,这样每次循环n还是过不了 1,找到a 和 b 数组中的最大值 2,c中的值一定大于等于 a和b中的最大值 3,考虑a中非零的数和b中非零的数相结合产生的贡献,即 #include <bits/st 阅读全文
posted @ 2022-04-29 16:42 1564269628 阅读(14) 评论(0) 推荐(0) 编辑
摘要: Problem F. fare ###树形换根dp 换根时,维护新节点的信息,使其所有的信息和当它是根节点时一样即可。 推导一下数学式子,维护一下子树 d^2 的和即可。 #include <bits/stdc++.h> using namespace std; #define endl '\n' 阅读全文
posted @ 2022-04-29 16:34 1564269628 阅读(22) 评论(0) 推荐(0) 编辑