用for循环实现冒泡排序(升序): array = [3,2,1] for i in range(len(array) - 1, 0, -1): for j in range(0, i): if array[j] > array[j + 1]: array[j], array[j + 1] = ar ...
分类:
编程语言 时间:
2020-12-10 10:44:59
阅读次数:
5
**算法名称:**选择排序 基本原理(从小到大): S1:选出数组中最小元素(记下标为i)(一基准值也可)。 S2:从剩余待排序数组元素选出最小元素与下标为(i+1)元素交换。 S3:重复S2。 算法图示: 图片来自https://www.runoob.com/w3cnote/selection-s ...
分类:
编程语言 时间:
2020-12-09 12:30:22
阅读次数:
9
Java类的访问权限 Java类的访问权限有两种: 公共类和非公共类 使用public修饰的类为公共类,没有使用public修饰的类为非公共类。 公共类的应用场景 如果这个类想要在其他包中使用就定义为公共类 非公共类只能在当前包中使用 在定义类的成员时,遵循访问权限最小化的原则。 如果想在任意位置都 ...
分类:
编程语言 时间:
2020-12-08 12:45:11
阅读次数:
8
题目描述: 给定一个颗树,每一条边有俩个权值w1和w2。选择k条边权为w1的边,其余都是w2。让直径最小。 题解: 树形dp,f[u][k]表示以u为根结点的子树的最小直径,因为直接求不好求,可以二分判可行性,求出答案。考虑转移,类似背包。 if(f[u][k] + f[j][z] + A <= m ...
分类:
其他好文 时间:
2020-12-08 12:37:07
阅读次数:
5
题1:给三个数字排序 #include<stdio.h> int main() { int a; int b; int c; //a最大,b次之,c最小 if(a<b) { int tmp=a; a=b; b=tmp; } if(a<c) { int tmp=a; a=c; c=tmp; } if( ...
分类:
其他好文 时间:
2020-12-08 12:27:50
阅读次数:
7
温馨提示:由于微信单篇文章的字数限制,RocketMQDLedger日志复制分为两篇文章介绍。本篇紧接着上文源码分析RocketMQDLedger(多副本)之日志复制-上篇。3、EntryHandler详解EntryHandler同样是一个线程,当节点状态为从节点时激活。3.1核心类图其核心属性如下:longlastCheckFastForwardTimeMs上一次检查主服务器是否有push消息的
分类:
其他好文 时间:
2020-12-07 12:47:18
阅读次数:
11
二分 + \(dp\) 的好题。 首先,要求最大直径最小,我们肯定会想到二分最大直径。 难点就在于怎么 \(check\)。 记录数组 \(dp_u\) 表示在 \(u\) 号点,其子树到达 \(u\) 号点的最大链长。转移时,考虑其和子树之间的关系。 可以发现,\(u\) 号点就类似于一个 \(l ...
分类:
其他好文 时间:
2020-12-07 12:41:01
阅读次数:
8
CF505E 给定 n 个数 h1…n?。 你需要进行 m 轮操作, 每轮操作为 k 次修改,每次修改可以选择一个数 hi? 修改为 max(hi??p,0)。 每轮操作后每个hi? 将会被修改为 hi ?+ ai?。 你需要最小化最终 h1…n? 中的最大值。 n ≤ 1e5,m≤5e3,k ≤ ...
分类:
其他好文 时间:
2020-12-07 12:27:23
阅读次数:
5
CF516D 给定一棵 n 个点的树,边有边权。 定义一个点的权值为 :该点距离树上所有点的距离中,最大的那个距离 q 次询问最大的满足 所有点的最大权值减最小权值 小于等于 x 的连通块 s 包含的点数。 n ≤ 1e5,q ≤ 50。 首先,离每个点最远的点一定是直径的两个端点之一,我们可以因此 ...
分类:
其他好文 时间:
2020-12-07 12:25:51
阅读次数:
4
计算机五大组成、三大核心、以及操作系统的启动流程和应用程序的启动流程 ...
分类:
其他好文 时间:
2020-12-07 11:51:26
阅读次数:
3