root

根据前序遍历和中序遍历重建二叉树

戏子无情 提交于 2020-02-25 08:00:55
package com.study; /* * 根据二叉树的前序遍历和中序遍历结果重建二叉树 * 并输出其头节点。假设前序遍历和中序遍历结果中没有重复数字 * 前序遍历序列:{1,2,4,7,3,5,6,8} * 中序遍历序列:{4,7,2,1,5,3,8,6} * **/ class TreeNode { public int data; public TreeNode left; public TreeNode right; public TreeNode() { } } public class suanfa4 { private static int[] arr1 = {1,2,4,7,3,5,6,8}; private static int[] arr2 = {4,7,2,1,5,3,8,6}; public static TreeNode RebuildBinaryTree() { TreeNode head = null; head = ConstructBTree( head ,arr1, 0, 7, arr2, 0, 7); return head; } public static TreeNode ConstructBTree(TreeNode node, int[] pre, int pre_start, int pre_end, int[] inorder,

linux虚拟机安装

旧城冷巷雨未停 提交于 2020-02-25 03:34:29
1.真实机第一次安装必须先搞f2进入boot从光盘启动,虚拟机不用 进入的时候五个选项 Install or upgrade an existing system:安装或升级现有系统 Install system with basic video driver:安装过程采用基本的显卡驱动 Rescue installed system:启动进入系统修复模式 Boot from local driver:退出安装从硬盘启动 Memory test:存储介质检测 有一个提示需要检测硬盘,选skie不需要检测。 安装选择简体中文 选择不同的会安装不同的软件 Desktop(桌面) Minimal Desktop(最小化桌面) Minimal(最小化) Basic Server(基本服务器) Database Server(数据库服务器) Web Server(网页服务器) Virtual Host(虚拟主机) software development workstation(软件开发工作站) 做服务器,最好选最小化安装 root是超级管理员进入,过后目录在/home/root 如果添加一个aa管理员,进入目录在/home/aa root目录下的三个文件 /root/install.log:存储了安装在系统中的软件包及其版本信息 /root/install.log.syslog

树的直径,树的最长路dp思想

核能气质少年 提交于 2020-02-25 00:07:21
dp一直弱死了,树型dp很多基本的题都不会,最近在刷树型dp的题,把关于树的最长路的思想总结一下: 树的直径:树中距离最远的两点间的距离。 下面说几道题: hdu 2196:对于树上(双向边)的每一个节点求出与其距离最远的点的距离。 这个主要用的思想是两次dfs:一次dfs将 无向图转化为有跟树 (所以一开是一定要是建双向边,不然很可能wa或者tle,记录过程中可以开数组记入父亲节点,也可以在dfs递推过程中以栈的形式记录)求出每个跟节点到其所有的叶子节点的最远距离f[i]和g[i]。再一次dfs求出能够由父亲节点转化得到的最大距离h[i],求h[i]的过程中就有可能用到f[i]和g[i]了,因为如果i节点在其父亲j节点的最远距离f[j]中,那么f[i]就只能由g[j]或者h[j]得到,不然就由f[j]或者h[j]得到,具体可能说的不是特别清。两个dfs综合起来的复杂度只有O(E) poj 1985:求树的直径。个人觉得大概有3种方法。 第一种是如上题hdu2196的写法,求出每个点的最远距离最后取最大值,这样不会增加太多的复杂度,因为每次dfs也都知识O(E)的复杂度。 View Code 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include

P2420 让我们异或吧

大兔子大兔子 提交于 2020-02-24 11:46:44
https://www.luogu.com.cn/problem/P2420 对于异或,就是将之前的求和的+号改为^ 即可 其他完全一样 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long LL; 4 const int maxn=200000+10; 5 int n,m,r; 6 //见题意 7 int w[maxn],wt[maxn]; 8 //链式前向星数组,w[]、wt[]初始点权数组 9 int son[maxn],id[maxn],fa[maxn],cnt,dep[maxn],siz[maxn],top[maxn]; 10 //son[]重儿子编号,id[]新编号,fa[]父亲节点,cnt dfs_clock/dfs序,dep[]深度,siz[]子树大小,top[]当前链顶端节点 11 //查询答案 12 struct node 13 { 14 int v,w,nxt; 15 }G[maxn<<2]; int head[maxn]; int num; 16 struct tre 17 { 18 int l,r,lazy,sum; 19 int mx,mn; 20 }tree[maxn<<2]; 21 void add(int u,int v,int w) 22 { 23 G[++num

1 服务器基本插件安装

妖精的绣舞 提交于 2020-02-24 10:14:47
  准备一台干净的腾讯云ubuntu18.04服务器 1 重装系统,设置密码 2 XShell登录,用户名ubuntu,密码为之前设置的密码 3 登录系统后,先更改密码,再设置root密码,然后转到root用户。 $ sudo passwd $ sudo passwd root $ su root 4 建立python3软链接 $ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 36 $ python -V   此时可看到python的版本为Python3.6.8 5 安装distutils.core 模块 $ sudo apt-get install python3-distutils 6 安装下传下载模块 $ sudo apt-get install lrzsz 7 安装setuptools依赖包   在pypi.org下搜索setuptools,下载一个最新的setuptools依赖包,目前最新版本是45.2.0.下载后拷贝到服务器解压安装。 $ tar -xzvf setuptools-45.2.0.tar.gz $ cd setuptools-45.2.0 $ python setup.py install 8 安装pip   在pypi.org下搜索下载pip

Win2003 + IIS6 + PHP5 + MySQL5 + ZendOptimizer3.3.0的安装与配置

非 Y 不嫁゛ 提交于 2020-02-24 09:59:09
注意: 1、 如果服务器启用了防火墙,必须设置开放3306端口,否则MySQL启动可能会失败 2、 不可随意结束mysqld-nt.exe进程,该进程非正常结束的话,可能导致MySQL服务无法启动,必须重新安装 3、 如果程序的安装路径不同,应根据具体的情况修改相应的文件路径 一、安装步骤 1、 安装MySQL 下载MySQL,为了更换服务器的方便,在条件允许的情况下,推荐各个服务器的MySQL安装同一个版本。这里我们以MySQL 5.0.45版本的免安装压缩包为例。 把下载来的mysql-noinstall-5.0.45-win32.zip压缩包解压缩到e:\mysql文件夹中,这个文件夹里面有几个my-*.ini的文件,这些文件是MySQL的默认配置文件,可以根据系统内存的大小,选用相应的文件(内存1-2G,选择my-huge.ini;内存512M,选择my-large.ini),把文件改名为my.ini。在运行窗口中输入: e:\mysql\bin\mysqld-nt.exe --install MySQL --defaults-file=e:\mysql\my.ini 至此,MySQL安装完成,可进服务管理启动服务,或者在命令行中执行: net start mysql 来启动服务。 说明:如果要卸载mysql服务,可先把mysql服务停止,然后用以下命令来删除服务: e:

mysql

余生长醉 提交于 2020-02-24 08:49:53
概念     MySQL之间数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以“事件”的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如果发现master二进制日志文件发生变化,则会把变化复制到自己的中继日志中,然后slave的一个SQL线程会把相关的“事件”执行到自己的数据库中,以此实现从数据库和主数据库的一致性,也就实现了主从复制。 安装mysql(一主一从)   192.168.138.187  主机 192.168.138.188  丛机 步骤一:检查虚拟机中是否有mysql环境,并将其卸载,命令如下 rpm -qa | grep -i mysql   如果有使用【rpm -e --nodeps MySQL-client-5.5.44-1.linux2.6.x86_64】命令将其删除; 使用【find / -name mysql】命令查看是否有相关的mysql文件夹 有的话,使用【rm -rf 文件名】删除相关文件或文件夹 步骤二:在【/usr/local】目录下使用命令【mkdir mysql】新建一个文件夹名为mysql,将tar文件放在该mysql文件夹下        步骤三:使用

左式堆的完整实现(含比较器,Java)描述

我的梦境 提交于 2020-02-24 03:55:30
引言 二叉堆是对优先队列的一种高效实现,左式堆是针对二叉堆合并操作困难的缺点,而提出的另外一种优先队列实现方式。 线性结构合并困难是显而易见的,而二叉堆那样高效的支持合并操作而且只使用一个数组更是难得。 这是因为,合并似乎需要把一个数组拷贝到另一个数组中去,对于相同大小的堆,这将花费O(N)。 但这区区O(N)还不够,所以就不能使用顺序存储结构,应该使用链式指针。有一句话说的特别好: 所有支持高效合并的高级数据结构都需要使用指针 。 能更高效完成合并的 左式堆 和 二项队列 显然都是使用了 指针 ,是 链接存储 的。 左式堆详解 这里有一篇比较详细的讲解,可看 从npl属性看左式堆 注意理解 npl 这个属性, npl 是 null path length 的缩写,意为 从该结点到达一个没有两个孩子的结点的最短距离 (一个孩子的结点或者叶子结点)。 一般定义 null 的 npl 为 -1 以使计算简便。 容易得到,任意结点的 npl 是它的子结点的 npl 中 较小 的那个结点的 npl+1 。 即 root.npl = min(root.left.npl, root.right.npl)+1 (前提是root != null && root.left != null && root.right != null,否则空指针……) 任意结点的左孩子的 npl 大于等于右孩子的

MySQL5.7.28免安装版本

自闭症网瘾萝莉.ら 提交于 2020-02-23 09:05:20
1、下载,并解压 https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.28-winx64.zip 2、配置环境变量 在系统变量 path 后面追加D:\zz\MySQL5.7.28\bin,如图所示。 3、创建配置文件,命名为 my.ini,编辑 my.ini 文件的内容,如图所示。 [mysql] #设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port=3306 #设置mysql的安装目录 basedir = D:\mysql-5.7.20-winx64\ #设置mysql数据库的数据存放目录 datadir = D:\mysql-5.7.20-winx64\data #允许最大连接数 max_connection=200 #服务器端使用字符集 character-set-server=utf8 #创建新表使用默认的存储引擎 default-storage-engine=INNODB 4、安装 MySQL 服务,执行命令为 mysqld–install D:\zz\MySQL5.7.28>mysqld -remove The service doesn't exist! D:\zz\MySQL5.7.28>mysqld

Mysql 5.7 开启远程连接

放肆的年华 提交于 2020-02-23 07:27:49
CentOS系统安装好MySQL后,默认情况下不支持用户通过非本机连接上数据库服务器,下面是解决方法: 1、在控制台执行 mysql -uroot -p 系统提示输入数据库root用户的密码,输入完成后即进入mysql控制台 2、选择数据库 use mysql; 开启远程连接 root 用户名 % 所有人都可以访问 password 密码 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; FLUSH PRIVILEGES; 3、重起mysql服务 service mysqld restart 如果执行完以上步骤,还是不能远程连接,那么我们需要查看服务器的防火墙是否开启 service iptables status 如果防火墙开启,请关闭 service iptables stop 到此就可以远程连接了! 来源: https://www.cnblogs.com/Ghost-bird/p/9036489.html