[代码元]平衡二叉树 题目描述平衡二叉树(AVL树),是指左右子树高度差至多为1的二叉树,并且该树的左右两个子树也均为AVL树。 现在问题来了,给定AVL树的节点个数n,求有多少种形态的AVL树恰好有n个节点。输入描述一行一个整数T(T≤2000)表示数据组数T行, 每行一个整数n(n≤2000)输出描述每行一个数字表示结果,由于结果巨大,输出它对109+7取余数的结果。输入样例110输出样例60分析:一棵树是平衡二叉树,其左子树有子树满足同样性质。性质:左右子树的高度差最多为1则我们可以推导.
[python]01.2数据类型 [python]01.2数据类型注意:笔记目的为快速上手python,默认大家都装好pycharm并配置好了环境等前提问题,并且有C\C++或Java的基础1. 变量赋值python中的变量赋值和C/C++、Java中不同,不需要对变量进类型声明每个变量在使用前都必须赋值,变量在赋值后在被会创建。创建的方式:变量名 = 值python会通过你赋的值来自动判断变量的类型变量还可以多个赋值如:a = b = c = 1补充:函数type(变量名)可以返回
[python]01.1基础语法 注意:笔记目的为快速上手python,默认大家都装好pycharm并配置好了环境等前提问题,并且有C\C++或Java的基础1. 标识符命名规范:和Java中类似,标识符由字母、数字、下划线组成,但是不能以数字开头,同时python区分大小写。2. 关键字3. 一个输出函数:print()4. 代码模块的表达方式:缩进...
[python]00导读 python语言的特点:1、简单易学:Python是一种代表简单主义思想的编程语言,阅读一个良好的Python程序的时候就犹如在读英语一样。Python最大的优势就是伪代码的本质,在开发的时候主要以解决问题为主要,并不是搞明白语言的本身。2、面向对象:Python既是面向对象的编程,也是面向对象编程,与其他主要的语言C++和Java对比来说,Python是以一种非常强大而且简单的方式来实现面向对象的编程。3、可移植性:Python具有开源的本质,可以被移植在许多的平台上,比如说Lnux、Wind.
牛牛的数列 题目:链接:登录—专业IT笔试面试备考平台_牛客网来源:牛客网题目描述牛牛现在有一个n个数组成的数列,牛牛现在想取一个连续的子序列,并且这个子序列还必须得满足:最多只改变一个数,就可以使得这个连续的子序列是一个严格上升的子序列,牛牛想知道这个连续子序列最长的长度是多少。输入描述:输入包括两行,第一行包括一个整数n(1 ≤ n ≤ 10^5),即数列的长度;第二行n个整数a_i, 表示数列中的每个数(1 ≤ a_i ≤ 10^9),以空格分割。输出描述:输出一个整数,.
daimayuan:#607. 平方计数【因子】 题目描述给NN个正整数, 第ii个数用aiai来表示, 求出有多少对(i,j)(i,j) 使得a2i+ajai2+aj是一个完全平方数.输入格式第一行一个正整数nn 第二行nn个数, 表示a1,a2,a3...ana1,a2,a3...an.输出格式一行一个整数, 表示答案数据范围对于所有测试数据 满足1≤n≤106, 且1≤ai≤106样例输入51 2 3 4 5样例输出2解决:对于一个长度为1e6的数组,询问a[i] ^2 - a[j] 为一个
ceil函数 ceil函数头文件功能 返回大于等于表达式的最小整数用法代码实现运行结果头文件#include <cmath>功能 返回大于等于表达式的最小整数返回大于等于表达式的最小整数用法double t = ceil(double x);----int t = ceil(double x);代码实现#include <cmath>using namespace std;int main(){ double x = 2.1415; double t = ce
快读读入 快速读入方法1方法1#include<bits/stdc++.h>using namespace std;int main() { std::ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);}
sprintf用法 sprintf用法int t = 1000;char s[N];sprintf(s, "%d", t);string str = s;if (str.find('0') != string::npos);
约数 约数求一个数的所有约数 试除法约数个数约数之和最大公约数 欧几里得算法求一个数的所有约数 试除法#include <iostream>#include <algorithm>#include <vector>using namespace std;vector<int> get_divisors(int n){ vector<int> v; for (int i = 1; i <= n / i; i ++
质数 质数质数的判定 试除法 O(log(n))分解质因数 试除法筛质数 埃式筛法 O(log(logn))质数的判定 试除法 O(log(n))//质数的判定 试除法 O(log(n))#include <iostream>#include <algorithm>using namespace std;bool is_prime(int n){ if (n < 2) return false; for (int i = 2; i <= n
树状数组 树状数组功能实现前置知识点 lowbit()运算树状数组实现原理功能实现修改一个结点的值add(x, k)查找前缀和功能单点修改 O(log(n))区间查询 O(log(n))实现前置知识点 lowbit()运算lowbit(x)运算:得到x二进制下最低位的1和剩余的0所构成的数例如:lowbit(10)4的二进制可以表示为1010,则lowbit(10) = 2;代码实现:int lowbit(int x){ return x & -x;}树状数组实现原理树状数组可
用栈模拟表达式 前缀表达式 :OP + S1 + S2 将运算符提前中缀表达式 :S1 + OP + S2 常识中的运算方式后缀表达式 :S1 + S2 + OP 将运算符放后前缀表达式:+ *a b * -c / d e f中缀表达式:a * b + c - d / e * f后缀表达式:a b * c d e / - f * +后缀表达式的运算:运算符在式中出现的顺序恰为表达式的运算顺序;每个运算符和它在前出现且紧靠它的两个操作数构成一个最小表达式...
1452: [蓝桥杯2019初赛]平方和 题目连接:http://oj.ecustacm.cn/problem.php?id=14521452: [蓝桥杯2019初赛]平方和时间限制: 1 Sec 内存限制: 256 MB提交: 953 解决: 513[状态] [提交] [命题人:外部导入]题目描述小明对数位中含有2、0、1、9 的数字很感兴趣,在1 到40 中这样的数包括1、2、9、10 至32、39 和40,共28 个,他们的和是574,平方和是14362。注意,平方和是指将每个数分别平方后求和。请问,在1 到2019 中
图论 图论dijkstra算法dijkstra算法Dijkstra算法是通过,i->k->j的距离来更新i->j的距离。首先初始化所有点到一号点距离为正无穷然后每次找到距一号点最近的点,不断更新其他点,这就是Dijkstra算法了。朴素版的Dijkstra算法是用二维数组存储,而堆优化版的Dijkstra算法是用链表存储的。...
关于STL的一些细节的扩充 关于STL的一些细节的扩充第一点 使用STL容器时,使用pair的时候第一点 使用STL容器时,使用pair的时候map<int, pair<int, int>> heap;for (auto it : heap)cout << it.second.first << ' ' << it.second.second << endl;...
list容器 list容器介绍用途头文件以及构造方法插入数据以及遍历list函数插入从末端插入元素[push_back()]从头部插入元素[push_front()]获取头部元素[front()]与尾部元素[back()]删除最后一个元素[pop_back()]与删除第一个元素[pop_front()]判断是否为空[empty()]清空list内的所有元素[clear()]插入一个元素或多个元素[insert()]删除一个元素或一个区间[erase()]介绍list容器与双向链表用途快速插入删除头文件以及构