数据结构与算法
vvshuai
算法爱好者,分享后端知识
展开
-
【牛客编程巅峰赛S2第4场 - 钻石&王者】交叉乘
交叉乘题目描述上小学二年级的牛牛已经精通整数的加法和乘法。现在你要考考他。你先给出一个整数数组a ,然后每次你会给一对整数l,r(l≤r),牛牛需要算出∑i=lr\sum_{i=l}^r∑i=lr∑j=i+1r\sum_{j=i+1}^r∑j=i+1r aia_iai * aja_jaj的值。但是牛牛算完之后你不能不确定他算得对不对,为了验证他的答案,你决定自己算一遍。为了不输出过大的答案,假设答案为ans,请输出ans % 1,000,000,007。题解这道题是要我们遍历求和,原创 2020-11-28 23:22:46 · 127 阅读 · 0 评论 -
【牛客编程巅峰赛S2第2场 - 钻石&王者】Tree II(题解 && 代码)
题目描述系统中有一棵n个点的完全k叉树,现给出它的BFS层序遍历序列a[i](即从根节点开始,每一层从左向右遍历),请你还原这棵树,并返回加密后的答案。题解这道题只是单纯的考察了满k叉树的性质,以及树的存储。...原创 2020-11-21 09:31:33 · 174 阅读 · 0 评论 -
【牛客编程巅峰赛S2第2场 - 钻石&王者】牛牛切木棒(题解 && 代码)
题目描述牛牛有一根长度为a(3≤a≤1e18)的木棒,现在牛牛想将木棒分成一些段(每段木棒长度必须为整数),使得分隔后的木棍中,任意三段都不能构成三角形,牛牛想知道木棒最多被分成几段呢?实例输入5输出3题目解析这道题就是一道斐波那契数列的变种题,对于木棒怎么分割,我们只要考虑相邻的三个构不成三角形,其他方法也必然不能构成三角形。上述样例5,按照斐波那契数列来说是1 1 2,但是还剩下1,满足不了下一个数(3),所以我们将剩余的1,加入到前一个2中,得到序列1 1 3既是答案。AC原创 2020-11-20 22:05:51 · 281 阅读 · 1 评论 -
【牛客编程巅峰赛第一场】Tree IV && 题解
Tree IV题解这道题总体来说较为简单,主要考察二叉树的性质,我们首先给出一个二叉树的编码图如上所示,我们可以得到三个结论每层的第一个结点值都为(2的上一层数的次方)。每层的最后一个结点值为(2的当前层数的次方-1)。每层结点和可以由等差数列求得。通过上述三个结论,我们可以快速求出每层的结点和,因为我们可以通过求2的幂值,轻易得到等差数列的起点与终点,最终加和取余即可得到最后的结果。代码public static long mod = 998244353; public原创 2020-11-18 12:24:43 · 173 阅读 · 0 评论