root

树分治之点分治模板总结

試著忘記壹切 提交于 2020-03-12 07:17:44
点分治的时间复杂度为O(NlogN)。 由于每次都是找重心,所以处理完一个大小为N的树后,每个子树的大小最大都为N/2,所以最多分治NlogN层,每层都是N 所以是O(NlogN)。 【具体流程】 1,选取一个点,将无根树变成有根树   为了使每次的处理最优,我们通常要选取树的重心。  何为“重心”,就是要保证与此点连接的子树的节点数最大值最小,可以防止被卡。  重心求法:   1。dfs一次,算出以每个点为根的子树大小。   2。记录以每个节点为根的最大子树大小   3。判断:如果以当前节点为根更优,就更新当前根。 void getroot(int v,int fa) { son[v] = 1; f[v] = 0;//f记录以v为根的最大子树的大小 for(int i = head[v];i;i=e[i].next) if(e[i].to != fa && !vis[e[i].to]) { getroot(e[i].to,v);//递归更新 son[v] += son[e[i].to]; f[v] = max(f[v],son[e[i].to]);//比较每个子树 } f[v] = max(f[v],sum-son[v]);//别忘了以v父节点为根的子树 if(f[v] < f[root]) root = v;//更新当前根 } 2、处理连通块中通过根节点的路径。   (注意

MySQL问题记录--Can't connect to MySQL server on localhost (10061)解决方法

梦想与她 提交于 2020-03-12 04:58:13
本文mysql的安装环境为win7 64位,mysql版本为MySQL5.7 问题描述:在命令行输入 mysql -u root -p 登录mysql,返回”Can't connect to MySQL server on localhost (10061)”错误 问题原因:在一番谷歌后,查到问题原因是mysql没有启动。 解决方法: 1、将mysql加入到Windows的服务中:切换到mysql安装目录下的bin文件夹,命令行运行"mysqld --install" 1 C:\Program Files\MySQL\MySQL Server 5.7\bin> mysqld --install 2 Service successfully installed. 注: 此时若使用“net start mysql”成功启动msyql,则无须执行下面步骤 2、初始化mysql数据库,输入“mysqld --initialize --user=root --console”。下面红色文字为初始化后的root 密码 C:\Program Files\MySQL\MySQL Server 5.7\bin>mysqld --initialize --user=root --console 2016-10-29T01:35:44.309833Z 0 [Warning] TIMESTAMP with

Linux下查看文件和文件夹大小

孤街浪徒 提交于 2020-03-12 04:56:53
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。 df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。 du可以查看文件及文件夹的大小。 两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。 下面分别简要介绍 df命令可以显示目前所有文件系统的可用空间及使用情形 ,请看下列这个例子: [root@iZ620s8jm9iZ home]# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 20G 19G 0 100% / devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.7G 925M 2.8G 25% /dev/shm tmpfs 3.7G 81M 3.7G 3% /run tmpfs 3.7G 0 3.7G 0% /sys/fs/cgroup /dev/xvdb1 296G 106G 175G 38% /mnt 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。 上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/xvdb1

LeetCode 226. 翻转二叉树

五迷三道 提交于 2020-03-12 04:23:10
翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 备注: 这个问题是受到 Max Howell 的 原问题 启发的 : 谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode* invertTree(TreeNode* root) { if (!root) return root; TreeNode* temp = root->right; root->right = invertTree(root->left); root->left = invertTree(temp); return root; } }; 来源: CSDN 作者: liulizhi1996 链接: https://blog.csdn.net

Centos安装Socks5代理,附带连接工具

感情迁移 提交于 2020-03-11 17:57:50
安装配置Socks5 系统环境:以CentOS7为例 提前准备:官网下载Socks5 tar包 版本:ss5-3.8.9-8.tar.gz 链接: http://sourceforge.net/projects/ss5/files/ http://ss5.sourceforge.net/ 官方实例 http://ss5.sourceforge.net/examples.htm wget http://downloads.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz 1、安装依赖开发库 yum install pam-devel openldap-devel openssl-devel 2、解压tar包并进行编译安装 tar -zxvf ss5-3.8.9-8.tar.gz #注:解压后得到的目录是ss5-3.8.9 cd ss5-3.8.9 ./configure 注:默认是1080端口,如果想改端口的话,./configure –with-defaultport=10086 make make install 典型的默认编译三部曲,没有什么好说的 3、修改配置文件 ss5 默认使用1080端口,并允许任何人使用 在这里主要是修改对ss5开启用户验证 vim /etc/opt/ss5/ss5.conf auth

Linux常用命令,及JDK、Tomcat和MySQL在Linux下的部署(CentOs7.6和CentOs6.5均适用)

半腔热情 提交于 2020-03-11 17:03:45
Linux常用命令,及JDK、Tomcat和MySQL在Linux下的部署(CentOs7.6和CentOs6.5均适用) 1.Linux常用命令 pwd 打印工作目录,当前所有文件夹全路径 cd 进入到文件夹 mkdir 新建空文件夹 ls平铺 ll详细列表 vi 和 vim 都是编辑文件 如果文件不存在,带有创建文件功能. vi 普通编辑 vim 高级编辑(带有颜色) 进入到编辑器后非可编辑状态,点击”i”或”insert”启用编辑状态 编辑后点击”esc”退出编辑状态,输入 :wq 保存并退出 :q 不保存退出(适用于没有编辑时) :q! 强制退出 touch 创建空文件. cat 查看文件全部内容. head [-n] 文件名 查看文件前 n 行,默认前 10 行. tail [-n] 文件名 查看文件后 n]行,默认后 10 行. tailf 动态显示文件后n行内容.常用在显示tomcat日志文件功能. echo ‘内容’ >> 文件名 向文件中添加一些内容. ifconfig 打印网卡信息. reboot 重启. tar zxvf 文件名 解压 cp [-r] 原文件 新文件路径 : 复制文件 -r 复制文件夹 ctrl+c 中断 mv 原文件 新文件 : 剪切(具备重命名功能) rm [-rf] 文件名 : 删除 -r 删除目录 -f 强制删除,不需要确认.

Liunx(01)常用命令

你。 提交于 2020-03-11 14:22:19
Liunx(01)常用命令 1、切换用户 su - root 按键输入密码切到root用户 从root用户切换其他普通用户不需要输入密码, 从其他普通户用切换到其他任何用户都需要输入密码 2、重启和关机 重启和关机都需要root 用户权限 重启 init 6 关机 Init 0 在 VMware 中不能直接×掉虚拟机,这样就=在windows中的掉电现象,会引起系统文件损坏等不良后果,导致虚拟环境无法使用。 3、清屏 clear 清除终端上面的所有内容 4、ifconfig 查看网络配置参数,也就是网卡对应的物理IP地址 5、ls命令 该命令是list的缩写,通过ls命令不仅可以查看liunx文件中包含的文件,而且还可以看到文件的权限(包括目录,文件夹,文件权限),查看目录信息等 常用参数搭配 ls 列出目录和文件信息 ls -l 列出目录和文件的详细信息 ls -lt 按照时间降序显示文件信息 6、pwd 查看 当前路径 全路径\ 绝对路径 表示以根路径 \ 为开始 相对路径 表示以当前文件夹为开始 7、切换文件夹 cd .. 放回上一层文件夹 cd ./+FileNamPath cd ~ 进入用户目录 cd / 进入跟路径 (跟路径里面的文件小心操作^_^) 8、mkdir 创建文件夹 eg: mkdir /tmp/aaa mkdir ./aaa 9、rm 删除文件或者文件夹

GlassFish linux下配置服务并自动启动

时光怂恿深爱的人放手 提交于 2020-03-11 10:18:27
1、vi /etc/init.d/glassfish3 export AS_JAVA=/usr/local/jdk1.6.0_11 GLASSFISHPATH=/root/glassfish3/bin export PASSWD=/root/glassfish3/bin/.passwd case "$1" in start) echo "starting glassfish from $GLASSFISHPATH" su - root $GLASSFISHPATH/asadmin start-domain ;; status) $0 start ;; restart) $0 stop $0 start ;; stop) echo "stopping glassfish from $GLASSFISHPATH" su - root $GLASSFISHPATH/asadmin stop-domain ;; *) echo $"usage: $0 {start|stop|restart|status}" exit 3 ;; esac 2、 sudo chmod +x /etc/init.d/glassfish3 3、vi /root/glassfish3/bin/.passwd AS_ADMIN_PASSWORD=administration-password 请将

python获取当前目录路径和文件

我只是一个虾纸丫 提交于 2020-03-11 02:31:40
一、获取当前路径 1、使用sys.argv[0] import sys print sys . argv [ 0 ] #输出 #本地路径 2、os模块 import os print os . getcwd ( ) # 获取当前工作目录路径 print os . path . abspath ( '.' ) # 获取当前工作目录路径 print os . path . abspath ( 'test.txt' ) # 获取当前目录文件下的工作目录路径 print os . path . abspath ( '..' ) # 获取当前工作的父目录 !注意是父目录路径 print os . path . abspath ( os . curdir ) # 获取当前工作目录路径 3、改变当前目录 使用: os.chdir(path)。 比如, 如果当前目录在 ‘E:’ 下面, 然后进入E 下面的files 文件 可以使用 os.chdir(E:\files). 之后,使用比如 test1 = open(‘file1.txt’), 打开的文件会是在这个 ‘E:\files’ 目录下的文件,而不是 ‘E’ 下的文件。 4、组合路径返回 os.path.join(‘file1’,‘file2’,‘file3’) 合并得到路径 file1/file2/file3 >> > print os .

543. 二叉树的直径

谁都会走 提交于 2020-03-11 01:50:16
给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。 示例 : 给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 注意:两结点之间的路径长度是以它们之间边的数目表示。 int res = 1; public int diameterOfBinaryTree(TreeNode root) { helper(root); return res-1;//所有节点个数减1,即为直径 } public int helper(TreeNode root){ if(root==null){ return 0; } int l = helper(root.left);//左子树深度 int r = helper(root.right);//又子树深度 res = Math.max(res,l+r+1);//更新直径为最大值 return Math.max(l,r)+1;//返回子树的深度 } 来源: CSDN 作者: 步行者之神 链接: https://blog.csdn.net/u012850192/article/details/104784496