摘要:
题目链接:中位数 思路 由于需要查询的是输入奇数个数字时的中位数,所以可以将输入的第一个数字初始化为默认的mid,然后再输入数据时将小于mid的元素加入大根堆,大于等于mid的元素加入小根堆,当输入到奇数个元素时,就可以判断当前大小根堆中的元素个数是否相等,相等则可以输出当前的mid,否则将mid加 阅读全文
摘要:
题目链接:ST表 思路 ST表是基于DP实现的区间查询最值(RMQ问题),但是ST表是静态查询不支持修改数据,查询的时间复杂度为O(1),预处理的时间复杂度为O(logn)。dp[i][j]表示以i为起点,包含2^j个数的区间中的dp值。 代码 #include <bits/stdc++.h> us 阅读全文
摘要:
题目链接:导弹拦截 思路 代码 #include <bits/stdc++.h> using namespace std; const int N = 1e5 + 5; int a[N], x, l, dp[N], maxn; int g[N], cnt; int main() { while (c 阅读全文
摘要:
Python中的属性主要分为类属性,对象属性。 1.类属性 类属性:类所有,所有的实例对象都能够共享,类定义时就直接指定的属性,能通过类名和实力对象名访问,当当前的类属性被实例对象通过对象名.属性名的形式调用之后,当前对象就会多出一个实例属性,此后使用对象名.属性名的形式调用的就是对象属性,因为对象 阅读全文
摘要:
Python中有三种比较常见的方法类型,如类方法和静态方法,实例方法,他们是面向对象编程中重要的概念。 1.类方法 类方法是通过使用装饰器@classmethod来定义的,他的第一个参数是cls,指向类本身,允许我们在方法中操作类的属性或调用其他类方法。 类方法的使用:类方法可以通过类名和实例对象来 阅读全文
摘要:
比赛链接:牛客周赛47 赛时感受 又是一场思维题,应该只有EF有点算法,E需要使用快速幂和取余,F做不出,C卡了我一下,D写完了,E不写完一半又回来看C才做掉的,E也卡了很久虽然鸽巢原理想到了,但是没想到被卡在取余问题上,一开始没想出来,去做F然后做了半个小时发现做不掉,又回来在E上做功夫。 A 思 阅读全文
摘要:
题目链接:最大子树和 思路 由于可以无限剪枝,所以假设以节点1为根,并删去所有美丽质数小于0的子树,又考虑到可能会出现根节点为负数,导致可能会只留下子树而把节点1为根节点的其他部分扔掉,所以需要dp数组记录,dp[i]为以节点i为根节点能得到的最大的美丽指数,贪心将节点i的子树中所有美丽指数之和小于 阅读全文
摘要:
题目链接:填涂颜色 思路 因为需要找出被所有1围住的0,但是发现直接查找会比较麻烦,会需要搜索判断四个方向都被1包围,然后还要再次搜素给这些0赋值。但是如果反向思维把不被1包围的0全部找出来剩下的就是被1包围的0了,可以使用搜索从在正方形边界上的0开始搜索,将所有能搜到的0全部标记,剩下的就是被1包 阅读全文
摘要:
题目链接:Entertainment in MAC 思路 当当前操作次数n为偶数时,若原字符串大于反转字符串则可以将原字符串反转n - 2次,则得到的还是原字符串,此时反转一次,并将其再次反转的字符串加到反转字符串的末尾,此时得到词典最小的字符串,源字符串小于反转字符串时,直接将原字符串反转n次得到 阅读全文
摘要:
题目链接:数字三角形 思路 dp:金字塔顶的元素为起点,金字塔每行的最左侧数字只能从上一层的最左侧数字到达,如7 -> 3 -> 8 -> 2 -> 4,这些数字中的每一个(除起点7外)都只能从上一层的最左侧数字到达,递推公式为dp[i][1] = max(dp[i][1], num[i][1] + 阅读全文