重构

P4197 Peaks [克鲁斯卡尔重构树 + 主席树]

风格不统一 提交于 2019-12-03 06:34:01
部分kruskal重构树内容摘抄于 bzt神仙的blog Problem 在 \(Bytemountains\) 有 \(n\) 座山峰,每座山峰有他的高度 \(h_i\) 。有些山峰之间有双向道路相连,共 \(M\) 条路径,每条路径有一个困难值,这个值越大表示越难走,现在有 \(Q\) 组询问,每组询问询问从点 \(v\) 开始只经过困难值小于等于 \(x\) 的路径所能到达的山峰中第 \(k\) 高的山峰,如果无解输出 \(-1\) 。 kruskal重构树是用来解决一些诸如“查询从某个点开始 经过边权不超过 \(val\) 所能到达的节点”的问题 所以很显然 在最小生成树上是最优的。。其他多余的边可以不需要考虑。。 那我们在跑kruskal的时候重新建边。。 克鲁斯卡尔重构树的思想就是在建最小生成树的时候不是直接连边 而是新建一个节点 并把这个节点的值设为边权 然后令两个连通块的代表点分别作为它的左右儿子 然后令这个新节点成为整个连通块的代表点 即如果 \(u\) \(v\) 不连通 sort(q + 1 , q + m + 1 , cmp) ; for( int i = 1 ; i <= n ; i ++ ) fa[i] = i ; tot = n ; for( int i = 1 ; i <= m ; i ++ ) { int u = find(q[i].u) , v

Confluence 6 重构索引缓慢

匿名 (未验证) 提交于 2019-12-03 00:40:02
你的索引构建是否需要很长时间?索引构建需要的时间是由下面的一些因素确定的: 你 Confluence 安装实例中的页面数量。 附件的数量,类型和大小。 Confluence 安装实例可用的内存大小。 磁盘 IO 吞吐量。 你可以为你的 Confluence 的安装实例增加 heap 内存的使用,能够帮你提高索引的效率,请参考 Increasing Jira application memory 页面中的内容。内存增加的操作针对 JIRA 和 Confluence 是相同的。 如果你现在运行的是老的 Confluence 版本,你的索引重构不能正常镜像。你可能需要先停止 Confluence 的运行,同时将启动参数添加到 Confluence 的系统属性中: bucket.indexing.threads.fixed=1 。这种方式将会使用单一线程对索引进行重构,重构过程也更加稳定(查看下面的说明)。 https://www.cwiki.us/display/CONF6ZH/Content+Index+Administration 原文:http://blog.51cto.com/ossez/2139481

Confluence 6 重构查找索引

匿名 (未验证) 提交于 2019-12-03 00:40:02
查找索引是自动维护的,但是你有时候可能会因为你在查找的时候或查看者邮件主题出现了异常,或者你的 Confluence 实例升级到了新的版本,你可能需要手动重构索引。 进行搜索索引重构: 在屏幕的右上角单击 控制台按钮 ,然后选择 General Configuration 链接。 在左侧面板的 管理(Administration) 下面,选择 内容索引(Content Indexing) 。 在 查找索引(Search Index)部分选择 重构( Rebuild )按钮。 (如果索引从来没有被构建,这个按钮的名字将会使用 构建(Build)来替代 重构(Rebuild)。) 屏幕截图:内容索引 'Did You Mean' 索引不再使用 'Did You Mean' 功能在 Confluence 中不再可用。这个索引在 Confluence 的索引中就显得多余了,将会在 Confluence 的后续某个版本中删除。 https://www.cwiki.us/display/CONF6ZH/Content+Index+Administration 原文:http://blog.51cto.com/ossez/2139479

代码重构

匿名 (未验证) 提交于 2019-12-03 00:39:02
1.重构 (1)重构变量 Shift+F6 批量重命名变量(Rename) private String bcd ; //光标在bcd处,按Shift+F6,改为lastname public String getFullName ( String abc ){ //光标在abc处,按Shift+F6,改为firstname System . out . println ( "your firstname: " + abc ); System . out . println ( "your lastname: " + this . bcd ); String fullName = abc + this . bcd ; System . out . println ( "your fullname: " + fullName ); this . sayHello ( abc ); return fullName ; } 这段代码abc,bcd含义不明,将abc重构为firstname,bcd重构为lastname,提高代码可读性,改为如下 private String lastname ; public String getFullName ( String firstname ){ System . out . println ( "your firstname: " +

机房重构――存储过程

匿名 (未验证) 提交于 2019-12-03 00:22:01
存储过程:一个记录集,由一些T-SQL语句组成的代码块,T-SQL语句代码块封装成一个方法一样实现某些功能(对单表或多表的增删改查),然后给这个代码块取名,需要的时候调用它。 创建存储过程: CREATE PROC [EDURE] procedure_name [;number] [ {@parameter data_type} [VARYING] [ = default] [OUTPUT] ] [,…n] [ WITH {RECOMPILE | ENCRYPTION | RECOMPILE,ENCRYPTION} ] [FOR REPLICATION] As sql_statement […n] 调用存储过程 EXECUTE Procedure_name ”――存储过程如果有参数,后面加参数格式为:@参数名=value,也可直接为参数值value 删除存储过程 drop procedure procedure _name 存储过程的参数: 1)procedure_name :存储过程的名称,前面加#为局部临时存储过程,加##为全局临时存储过程; 2)As :指定过程要执行的操作; 以组合查询为例: USE [charge] GO /****** Object: StoredProcedure [dbo].[PROC_GroupCheck] Script Date: 2018/5

基于PCA的图像降维及图像重构

匿名 (未验证) 提交于 2019-12-03 00:11:01
代码链接: 1 PCA 简述 PCA(Principal Component Analysis)主成分分析算法,在进行图像识别以及高维度数据降维处理中有很强的应用性,算法主要通过计算选择特征值较大的特征向量来对原始数据进行线性变换,不仅可以去除无用的噪声,还能减少计算量。 2 算法过程 2.1 对所有的样本进行中心化; 数据集的每个样本的不同特征减去所有样本对应特征的均值,处理过的不同特征上的数据均值为0。这样处理的好处是 可以减少特征之间的差异性,可以使得不同的特征具有相同的尺度,让不同特征对参数的影响程度一致 。 2.2 计算样本的协方差矩阵 (每列代表一个特征,每行代表一个样本) 2.2.1 计算样本矩阵每一列的均值 2.2.2 样本矩阵的每个样本减去对应列的均值 2.2.3 通过以下公式得到协方差矩阵 (m为样本总数) 2.3 对协方差矩阵进行特征值分解,得到特征值和特征向量; 2.4 取出最大的 k 个特征值对应的特征向量,组成投影矩阵W; 2.5 对样本集中的每一个样本,都乘以投影矩阵W进行转化,得到降维的数据; 3 Python代码实例 #encoding:GBK """ Created on 2019/09/23 16:19:11 @author: Sirius_xuan """ ''' 基于PCA的图像降维及重构 ''' import numpy as np

pycharm pro 2019 mac重构技巧?

匿名 (未验证) 提交于 2019-12-03 00:03:02
PyCharm 是一款功能强大的 Python 编辑器,具有跨平台性,对于一些pycharm pro 高级人员来说,如何重构pycharm 2019 mac?macdown小编帮您轻松解决这一问题,快来看看具体重构教程 在重构pycharm pro 2019 mac之前,先要满足以下先决条件: 您正在使用PyCharm版本2016.2或更高版本。 已经创建了一个项目。 接下来进入pycharm mac重构的步骤: 1.准备一个例子(创建一个项目): rational.py在项目中创建一个Python文件并添加以下代码: 2.简化有理数 让我们通过将分子和分母除以最大公约数来简化有理数: 3.提取方法 现在,让我们将搜索最大公约数提取到单独的方法中。为此,请选择语句 并按Ctrl+Alt+M。在 打开的对话框中键入方法名称(gcd),然后单击“ 确定”: 4.内联局部变量并更改方法签名 让我们factor通过使用内联变量 重构来摆脱变量。为此,请将插入符号放在有问题的变量上,然后按Ctrl+Alt+N。所有检测到的factor变量都是内联的。 接下来,使用Change signature更改参数名称。为此,请将插入符号放在方法声明行中,然后按Ctrl+F6。在 对话框打开,重命名参数denom,并num以x和y分别,并单击图标节点upLevel(↑)更改参数的顺序。

C++代码重构遵循的原则

匿名 (未验证) 提交于 2019-12-02 23:49:02
在学数据结构的时候,我常有这样目标――写出能够最大程度复用的代码(算法正确,封装优秀)。我常想――如何能在短时间内达成“算法正确,封装优秀”这样的目标。经过一段时间的摸索,我的结论是:先用C写出正确的算法,再将它改写成C++ class,最后再考虑改为template。这种方法简单可行,基本实现了 逻辑(算法)设计与接口设计两个步骤的分离。 下面以一个有界队列为例,进行演示。 正确的算法 在考虑如何实现算法时,可以完全不用任何封装(C struct的封装也不用),只要实现最小操作集合就行了,但测试必须要写。 这里就是实现所谓的“环形缓冲”,空出一个用于区分队满和队空。连同测试,代码如下: #define BUFMAX 10 int buffer[BUFMAX]; int front = 0; int rear = 0; bool empty() { } bool full() { } int size() { } void clear() { } void push(int x) { } int pop() { } void show() { (运行结果不在此贴出,感兴趣的同学自己运行) 在只考虑算法不考虑接口的情况下,写出这样的代码很容易(相信有点语言功底的都能写得出来)。当然,上面的#define TEST可以不写,用编译选项定义也是可以的。 封装为class 有了这样的基础

开源应用框架BitAdminCore重构再思考

匿名 (未验证) 提交于 2019-12-02 22:06:11
索引 NET Core应用框架之BitAdminCore框架应用篇系列 框架演示: https://www.bitadmincore.com 框架源码: https://github.com/chenyinxin/cookiecutter-bitadmin-core NetCore应用框架开源发布已经有一段时间,通过不断的迭代,对于框架的定位重新做一个思考,决定放弃一些原来的想法,将定位重新聚焦: 1、定位于没有自主开发框架的小团队,包括企业团队均可免费获得使用。 2、定位于后台管理模块开发,以管理员对数据增删改查为核心。数据量在几千万以内,在线用户数在1000以内的应用。 3、放弃支持mysql数据库,虽然它有免费优势,还是决定放弃它,需要的朋友,可以自行改造。 4、放弃redis和mongodb集成,这个量级的用户,基本不需要使用到。 5、考虑重构使用模块化安装模式,先安装基础core模块,再用户可以根据需要添加自己模块。 安装模式目前仍未有很好方案,因为efcore代码及命名空间差异,很难做到一键安装即可顺利编译,有好方案同学请提供参考。 6、增加一些常用的管理模块,减少团队在需求获取上的难度。 需要添加哪些管理模块,可以留下模型及字段,我将筛选后逐一安排添加。 BitAdminCore的终级目标是:假如你需要一个项目管理模块