10 2022 档案

摘要:Distance to the Path 思维 + 树链剖分 首先与树链剖分无关,先考虑如果只更新一个点的情况 因为更新一个点,它既能向根的方向更新,又能向子树方向更新,非常难维护,于是我们只考虑维护一个节点的子树结点的增值 设数组 sum[i][j] 为与 j 结点距离为 i 的 $j 阅读全文
posted @ 2022-10-28 00:23 dgsvygd 阅读(43) 评论(0) 推荐(0) 编辑
摘要:Wish I Knew How to Sort 概率dp 设计一个 dp[i] 表示还需要进行 i 次有效移动的期望次数 何为有效移动?最后的数组是 0 在左边,1 在右边 因此只有把两个在错误位置的交换,才算一次有效移动 因此计算出处于左边(本应该是 0 的位置)的 1,然 阅读全文
posted @ 2022-10-24 11:33 dgsvygd 阅读(100) 评论(0) 推荐(0) 编辑
摘要:Factorial Divisibility 模拟 合....合成大西瓜? 枚举每个阶乘因子,提取公因式之后有很多散着的 1,然后判断能不能合成当前倍数 #include <iostream> #include <cstdio> #include <algorithm> #include <ve 阅读全文
posted @ 2022-10-24 11:26 dgsvygd 阅读(75) 评论(0) 推荐(0) 编辑
摘要:Counting Arrays 素数 有歧义的数组很难求,但是没有歧义的数组很好求 要使 ai 到第一个位置之前都不能被删掉,则 2i 的所有数字和 ai 的 gcd 不等于 1 满足这样的条件,代表包含其 2i 的所有素数因数即可,因此设 2 到 $ 阅读全文
posted @ 2022-10-21 19:03 dgsvygd 阅读(45) 评论(0) 推荐(0) 编辑
摘要:Cactus Wall 01bfs 其实按照题目的意思,就必须要有一条 # 的最短路,从最左边的一列到达最右边的一列,然后是只能是斜着走,并且要保证新添加的 # 最少,而且添加的地方,其上下左右都没有 # 带着这些约束跑一个多起点多终点的 bfs 就行,因为权值的增加只有 01 阅读全文
posted @ 2022-10-21 14:25 dgsvygd 阅读(83) 评论(0) 推荐(0) 编辑
摘要:Good Subarrays (Easy Version) 双指针 显然 l 往右走一步的时候,r 一定是在更远的地方 因此直接双指针求解答案即可 #include <iostream> #include <vector> using namespace std; typedef long 阅读全文
posted @ 2022-10-11 15:06 dgsvygd 阅读(69) 评论(0) 推荐(0) 编辑
摘要:Equal Binary Subsequences 构造 赛中一直卡在 C2,没看到这题 显然数字出现的次数为奇数的无解 考虑偶数的情况,可以将数字相邻两个组合在一起,[2i+1,2i+2] 如果两个都是 0 或者 1,两个分到两边去就行了 如果两个是 01 阅读全文
posted @ 2022-10-11 15:03 dgsvygd 阅读(55) 评论(0) 推荐(0) 编辑
摘要:GCD & LCM Inverse 大整数质因数分解 主要是一个 PollardRho 板子想放上来 对 GCDLCM 质因数分解之后,对于每个质因数,有相应的两个幂 ap1ap2,且 ap1<>ap2,对于每个这样的质因数, 阅读全文
posted @ 2022-10-11 14:54 dgsvygd 阅读(22) 评论(0) 推荐(0) 编辑
摘要:Add and Mex 模拟 照着模拟就行了,主要是复杂度分析 第 i 个数字的增长速度为 i,显然对最终答案造成影响的范围值域就在 [0,n] 在最不理想的情况下,计算量为 i=1nn+1i 不难看出就是一个调 阅读全文
posted @ 2022-10-09 11:01 dgsvygd 阅读(86) 评论(0) 推荐(0) 编辑
摘要:Root M Leaper bfs 模拟 先把能走的矩阵预处理出来,然后直接跑 bfs 要注意各种边界 #include <iostream> #include <cstdio> #include <array> #include <queue> using namespace std; # 阅读全文
posted @ 2022-10-09 10:35 dgsvygd 阅读(70) 评论(0) 推荐(0) 编辑
摘要:鸽子的浮点运算 模拟 就跟着题意模拟就好了 先读入,然后转成二进制,截断成 16 位,然后转成十进制 double,最后计算,计算结果转成二进制截断成 16 位,然后输出 #include <iostream> #include <cstdio> #include <vector> #i 阅读全文
posted @ 2022-10-06 23:39 dgsvygd 阅读(22) 评论(0) 推荐(0) 编辑
摘要:Largest Submatrix of All 1’s 单调栈 感觉很经典的题目,不知道为啥就没做出来 从第 i 行来说,aij 可以抽象成一个高度为 x 的山峰,x 取决于在第 j 列,从第 i 行开始往上数,有多少个连续的 1 4 4 0 1 0 1 0 1 阅读全文
posted @ 2022-10-06 23:24 dgsvygd 阅读(24) 评论(0) 推荐(0) 编辑
摘要:Sightseeing tour 网络流 - 最大流 考虑欧拉图,无向边:度数全为偶数,有向边:出度和入度相等 对于有向边来说,已经不可更改;对于无向边来说,可以更改其指向 因此这题最终就是想找一种合理的方案(调整无向边的方向),使得所有点的出度等于入度 首先要判断是否是一个连通图,还要判断,所有点 阅读全文
posted @ 2022-10-06 23:15 dgsvygd 阅读(26) 评论(0) 推荐(0) 编辑
摘要:Mountain Walking 二分 + bfs 最终要求的最低差 二分答案,枚举最低海拔,这样就有一个能够接受的海拔范围 [l,r] 根据这个范围,看看 bfs 能不能搜索到 (n,n) #include <iostream> #include <cstdio> #inclu 阅读全文
posted @ 2022-10-05 21:20 dgsvygd 阅读(22) 评论(0) 推荐(0) 编辑
摘要:Euclid's Game 博弈 很经典的博弈了 首先明确每个状态必然都对应着一个局面,先手必败 or 先手必胜 如果当前局面对于先手来说是能够选择的,也就是 b>=a2,对于一个最终局面 b<a,如果先手必败,此时先手可以把这个局面丢给对方,否则可以让局面变成 $b' 阅读全文
posted @ 2022-10-05 21:17 dgsvygd 阅读(16) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
主题色彩