上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 36 下一页
摘要: 题目链接 题目思路 二叉搜索树的定义:就是二叉树中左子树的节点值均小于根节点,右子树的节点值均大于根节点 玄学的dp... 设$dp[i][j]$表示是否可以构成合法的二叉搜索树 设$L[i][j]$表示是否可以构成合法的左子树 设$R[i][j]$表示是否可以构成合法的右子树 然后转移 为啥我总感 阅读全文
posted @ 2021-08-18 17:28 hunxuewangzi 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 最多走40步即$2^{40}$,那么对于这种题目就可以使用折半搜索 代码 #include<bits/stdc++.h> #define fi first #define se second #define debug printf(" I am here\n"); using 阅读全文
posted @ 2021-08-18 16:14 hunxuewangzi 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 又是一个随机题目,对于$\frac{1}{2}$的概率这种东西大多都是随机 官方题解写的很好,我直接放官方题解 还有一点就是为什么只要枚举质因子而不要全部枚举因子 如果$a,b,c$对于$m$同余,那么他们的差分数组$mod ;m$为$0$ 所以相当于枚举差分数组的质因子即可得到 阅读全文
posted @ 2021-08-18 10:40 hunxuewangzi 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 引入 如果你要查询很多字符串的前缀(后缀)为字符串$s$的数量有多少个 这个时候就要运用到字典树 字典树的复杂度可以达到$O(s.size())$ 性质 字典树这颗树有点特殊,别人记录的信息都在节点上,这棵树记录的信息在边上 从oi-wiki上面 偷张图来看 可以发现,这棵字典树用边来代表字母,而从 阅读全文
posted @ 2021-08-17 09:52 hunxuewangzi 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 看起来很难,其实转换问题就是个矩阵内全0正方形的数量 代码 #include<bits/stdc++.h> #define fi first #define se second #define debug cout<<"I AM HERE"<<endl; using namesp 阅读全文
posted @ 2021-08-16 22:10 hunxuewangzi 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 最大全1子矩阵模板题 用单调栈预处某个点左边和右边比它本身大的范围即可 假设$h[i]$为矩阵高度即可,然后计算即可 代码 #include<bits/stdc++.h> #define fi first #define se second #define debug cout< 阅读全文
posted @ 2021-08-16 20:24 hunxuewangzi 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 首先一个及其暴力的思路$dp[i][j]$表示前$i$个斐波那契数构成$j$的答案然后极限卡常就过了??? 正解是要观察斐波那契的性质,对于斐波那契的前缀和$pre[i]=fac[i+2]-1$ 那么如果要构成$n$,必定要选择小于等于他的两个最大的斐波那契数之一,并且相互对立 阅读全文
posted @ 2021-08-16 16:07 hunxuewangzi 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 式子可以化简为$x\times a^b=n(x<a)$即可 观察这个式子其实只要$a$最小,那么一定满足$b$最大 那么我只需要枚举所有$a$,即$n$的所有因子然后check即可 但是暴力$sqrt(n)$可能会$TLE$,所以把他变成$\Large p_1^{q_1}\tim 阅读全文
posted @ 2021-08-14 22:08 hunxuewangzi 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 这个题目好像有1w种写法。。 我写下我的思路,首先观察题目可以发现其实就是可以找到$x$的最大祖先使得这个值小于$r$ 这样可以使用倍增实现 那么题目就可以转换为结点$x$中子数中有多少个节点的$t$值大于等于$l$ 然后用离线+线段树+dfs序 实现即可 代码 #include 阅读全文
posted @ 2021-08-14 21:45 hunxuewangzi 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 居然是个imo题目链接 感觉应该不会再有了吧。。。。 结论就是经过某个点的直线,使得左右两侧的点个数相同 向量取$(-1,1e9)$ 代码 #include<bits/stdc++.h> #define fi first #define se second #define deb 阅读全文
posted @ 2021-08-13 19:51 hunxuewangzi 阅读(38) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 36 下一页