挑战程序竞赛系列(62):4.6平面上的分治法(2) ---- 点集:给定n个点,请添加一些点,使任意两点满足①在同一条水平线或竖直线上②或构成一个矩形框住其他点。 void solve(Pair[] p, int l, int r) { if (r - l <= 1) return; int m = (r + l) / 2;
选择法的本质:不想冒泡法一个一个的交换,选择法,是先找出i小的数字找出来,然后,跟第i个数交换一下。 一轮子循环顶多值交换一次 如: 6 3 1 4 2 i=0 ,找出最小的数,再跟第0个数交换 如1和6交换 1 3 6 4 2 i=1,找出第二小的数,再跟第1个数交换,如3和2交换 1 2 5 4 3 i=3,找出第三小的数,在跟第2个数交换,如5和3 交换 1 2 3 4 5 i=4 第四小的数字已经成立,不需要交换 void exchang_sort(int a[],int n) { int
7-2 冒泡法排序 (30分) 将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。 输入格式: 输入在第1行中给出N和K(1≤K<N≤100),在第2行中给出N个待排序的整数,数字间以空格分隔。 输出格式: 在一行中输出冒泡排序法扫描完第K遍后的中间结果数列,数字间以空格分隔,但末尾不得有多余空格。 输入样例: 6 2 2 3 5 1 6 4 输出样例: 2 1 3 4 5 6 就是单纯的冒泡排序,本来应该是外层 a此循环,内层a次循环 题目要求是排列b次,所以最外层是b次 so~ #include
将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。 输入格式: 输入在第1行中给出N和K(1≤K<N≤100),在第2行中给出N个待排序的整数,数字间以空格分隔。 输出格式: 在一行中输出冒泡排序法扫描完第K遍后的中间结果数列,数字间以空格分隔,但末尾不得有多余空格。 输入样例: 6 2 2 3 5 1 6 4 输出样例: 2 1 3 4 5 6 #include<iostream> #include<vector> using namespace std; int
5W2H分析法 目录 1、前言 2、简介 3、5W 3.1、What:是什么 3.2、Why:为什么 3.3、When:什么时候 3.4、Who:谁 3.5、Where:在哪 4、2H 2、简介 5W2H分析法又叫七问分析法,是二战中美国陆军兵器修理部首创。 2、有效掌控事件的本质,完全地抓住了事件的主骨架,把事件打回原形思考。 3、简单、方便,易于理解、使用,富有启发意义。 4、有助于思路的条理化,杜绝盲目性。 4、2H 4.1、How:怎么做 怎样做省力? 怎样做最快? 怎样做效率最高? 怎样改进? 怎样得到? 怎样避免失败? 怎样求发展? 怎样增加销路? 怎样达到效率? 怎样才能使产品更加美观大方?
基于 CRITIC 法和变异系数法的导线网测量平差定权 杨腾飞,施昆,汪奇生 ( 昆明理工大学 国土资源工程学院 , 云南 昆明 650093) 【摘 要】 CRITIC 与变异系数定权都是一种客观的定权方法 由于先验的仪 器精度往往与实测精度不一致,这就造成平差不合理影响最终的点位精度 [2] 。 文献 3 阐述 了二次定权法与 Helmert 验后方差法的定权原理,这两种方法理论上较为合理且平差精度 有所提高,但其计算较为复杂。 文献 4 将熵值法这种客观定权法引入导线网的平差中并得 到了较好的效果。本文介绍另外两种客观定权法,将这两种方法运用到导线网平差中并与 常规方法进行比较。 2 客观定权理论 2.1 基本原理 客观定权的基本原理都是以被评价对象的指标值构成的决策矩阵来确定指标权重,这 样就排除了专家意见等容易受主观影响的成分 [4-7] 。
继上一篇 回溯法解小学数字填数练习(1), 本文再补充2题。 暴力法 此思路就是将2、4、6、8、10、12、14七个数,随机乱序,尝试填入。判断1、2、3三个节点和4、5、6三个节点的和一致即可。 , 8, 4, 14, 6, 2] 10 14 8 12 6 4 2 一共随机[585]次, 共产生满足条件结果[15]个 回溯法 执行一下结果如下: 找到结果 回溯法 以逆时针方向按顺序处理,如下图所示: 执行结果如下 找到结果 : [2, 6, 7, 5, 3, 8, 4, 9] 2 9 4 6 8 7 5 3 找到结果 : [2, 9, 4, 9, 2, 6, 7, 5] 3 5 7 8 6 4 9 2 找到结果 : [4, 8, 3, 5, 7, 6, 2, 9] 4 9 2 8 6 3 5 7 找到结果 : [4, 9, 2
embedding层在seq2seq模型中起着将离散单词转换为连续向量表示的关键作用,为后续的自然语言处理任务提供了有效的特征输入。 = {} self.index2word = {0: "SOS", 1: "EOS"} self.n_words = 2 def addSentence( : self.word2index[word] = self.n_words self.index2word[self.n_words] = words :", engl.word2index) print("index2word:", engl.index2word) print("n_words:", engl.n_words) # 输出 word2index : {'hello': 2, 'I': 3, 'am': 4, 'Jay': 5} index2word: {0: 'SOS', 1: 'EOS', 2: 'hello', 3: 'I', 4: 'am
= null || l2 != null) { sum /= 10; if (l1 ! = null) { sum += l2.val; l2 = l2.next; } if ( = null) { sum += l2.val; l2 = l2.next; } if ( listNodeToString(ret); System.out.print(out); } } } 这个不要理所当然想成了头插法, 看到测试代码才知道是尾插法,返回的ListNode也是需要尾插法的。
配制 10 mM 的 H2DCFDA (2,000×),如用 1.03 mL DMSO 溶解 5 mg H2DCFDA。 c) 阴性对照(选做): 用预热的 1 mL PBS 清洗细胞 2-3 次后,用新鲜制备的 5 mM NAC37℃ 处理 1 小时(或 0.1 mM H2O2 作为阴性对照,37℃ 处理 20-30 分钟 HKPerox-2:H2O2作为一种稳定的活性氧成分,在氧化损伤和细胞信号转导中也是发挥着很重要作用的。下面图 5a 就可以看出对 H2O2的高选择性。 此外,用 H2O2处理细胞,HKPerox-2 的荧光 30 分钟内就可以到达高峰。染色效果看图5c,亮眼的绿色荧光。使用方法和 H2DCFDA 的差不多。 可用于成像和检测活细胞的内源性超氧化物 HKPerox-2 对 H2O2 有高度选择性,绿色荧光探针。 HKOH-1r 用于检测活细胞中的内源性羟基自由基 •OH。
继上一篇《回溯法解小学数字填数练习(1)》,本文再补充2题。 暴力法此思路就是将2、4、6、8、10、12、14七个数,随机乱序,尝试填入。判断1、2、3三个节点和4、5、6三个节点的和一致即可。 2 第4次随机产生的结果: [4, 8, 6, 12, 14, 2, 10] 8 14 6 4 2 12 10 第5次随机产生的结果: [8, 14, 4, 6, 2, 12, 2 4 第15次随机产生的结果: [12, 10, 8, 4, 14, 6, 2] 10 14 8 12 6 4 2 一共随机[585]次, 共产生满足条件结果[15]个回溯法图片图片执行一下结果如下 1描述:在图中填入数2-9,使得每边三个数的和等于15.回溯法以逆时针方向按顺序处理,如下图所示:图片图片执行结果如下找到结果 : [2, 6, 7, 5, 3, 8, 4, 9]2 9 46 87
线性探测法 + 路径压缩 O(N) (本文重点介绍) 下面分别实现这3种解法。 1. 线性探测法(含路径压缩) O(N) ⚠️这道题换句话说,就是需要把原数组映射到一个地址不冲突的区域,映射后的地址不小于原数组对应的元素。 比如[3, 2, 1, 2, 1, 7]就映射成了[3, 2, 1, 4, 5, 7]。 我想了下,这道题目其实和解决hash冲突的线性探测法比较相似! (此时数组变成了上图,红色表示本次的更改) move = 0 保持不变; step2: 插入2: ? 因为2的位置是空的,所以直接放入2即可。 此时我们发现1的位置已经有值了,于是向后探测,探测到了2,发现2的位置也有值了,但是由于2在上次的过程中存了上次的空位4,所以我们直接跳转到4+1即从5开始探测就行了(而不需要重复走一遍2->3->4这条路径喽
Swagger2简介 简单的来说,Swagger2的诞生就是为了解决前后端开发人员进行交流的时候API文档难以维护的痛点,它可以和我们的Java程序完美的结合在一起,并且可以与我们的另一开发利器Spring <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2< 的配置类: /** * Swagger2 配置类 * @author vi * @since 2019/3/6 8:31 PM */ @Configuration public mapper") @EnableSwagger2 @EnableSwaggerBootstrapUI public class ViBootSwaggerApplication { public 2 . @ApiOperation 注解名称 注解属性 作用域 属性作用 @ApiOperation() value 方法 描述方法作用 notes 方法 提示内容 tags 方法 分组 举个?
Swagger2简介 简单的来说,Swagger2的诞生就是为了解决前后端开发人员进行交流的时候API文档难以维护的痛点,它可以和我们的Java程序完美的结合在一起,并且可以与我们的另一开发利器Spring <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2< 的配置类: /** * Swagger2 配置类 * @author vi * @since 2019/3/6 8:31 PM */ @Configuration public mapper") @EnableSwagger2 @EnableSwaggerBootstrapUI public class ViBootSwaggerApplication { public 2 . @ApiOperation 注解名称 注解属性 作用域 属性作用 @ApiOperation() value 方法 描述方法作用 notes 方法 提示内容 tags 方法 分组 举个?
这是《算法图解》的第一篇读书笔记,内容关于表示算法复杂度的渐近表示法以及一个简单但高效的算法:二分法。 1 .渐近表示法 1.1定义 算法的运行需要时间,这就需要衡量算法运行时间即时间复杂度的方式。 这个衡量方式就被成为渐近表示法(大O表示法)。 渐近表示法用于描述算法在最糟糕情况下的运行时间,同时也表示了算法运行时间随问题规模扩大而增长的幅度。 :阶乘级 2.二分法 2.1定义 二分法指的是在求解问题的过程中不断地折半缩减问题规模,最终在有限时间(log2 n)内求出问题答案的算法。 2.2实例 使用二分法的案例有很多,下面演示如何用二分法近似求出sqrt(2),精度在0.00000001 #二分法近似求出sqrt(2),精度在0.00000001 import math def (dichotomy(math.sqrt(2),8))
); } void chx_1() { printf(" "); ai_1('D','F',one1); ai_2('E',':',one2); ai_3('I',';' _6('6','@',2*one5); } void chx_2() { ai_1('4','1',2*one5); ai_4('<','?' void chx_9() { ai_1('0',44,one1); ai_2('?' _1(); chx_2(); chx_3(); chx_4(); chx_5(); chx_6(); chx_7(); chx_8(); chx_9(); chx_10(); chx_11(); chx_12(); chx_13(); chx_14(); chx_15(); system
对于下三角矩阵,如果按照行优先存储,则{a11, a21, a22, a31, a32, a33, a41, a43, a44},一维数组容量为10,即4 * ( 4 + 1) / 2 => n * ( n + 1 ) / 2,aij所在数组下标为:k = i * ( i - 1 ) / 2 + j - 1。 对于上三角矩阵,如果按照行优先存储,则{a11, a12, a13, a14, a22, a23, a24, a33, a34},一维数组容量为10,还是4 * ( 4 + 1) / 2 => n * ( n + 1 ) / 2,aij所在数组下标为:k = ( i - 1)(2n - i + 2) / 2 + (j - 1)。
下载地址:http://www.installshield.com/ 八、Jar2Exe. 这是今天特地要说的java打包成EXE的软件 下载地址:http://www.jar2exe.com/ Jar2Exe 明文:简单的打包方式,解压软件解压一下所有Class文件都在里面。 的加载 set JAVA_TOOL_OPTIONS=-javaagent:e2j-agent.jar 该命令是让java程序在加载一个类时会自动调用JavaAgent 2.操作 命令行运行你需要提取源代码的软件即可 Jar2Exe Level 2: Hidden Archive: With the level 2 protection, Jar2Exe takes our java archive, encrypts Jar2Exe.
分治法的思路是否和上一篇读书笔记所述的递归(recursion)相似呢。实,分治法是通过递归实现的。 2.快速排序法的实现 如上文所说,快速排序法应用了分治法的思想。 其具体思路如下: 1.从原序列中选择一个数作为基础值 2.将原序列中的元素按照与基础值的大小比较结果,分为大于基础值、小于基础值两个序列:S1和S2. 3.将元素列按照S1、基础值和S2的顺序组合成一个新序列并将新序列返回 4.分别将S1和S2重复步骤1、步骤2和步骤3。 5.重复步骤4,直到划分后的序列只有一个或零个元素,此时直接返回含有单个元素或0个元素的序列。 代码如下: #演示快速排序法,排序结果以降序显示 def quick_sort(seq): #基线条件 if len(seq)<2: return seq base_value (用渐近表示法表示) 基于分治思想的快速排序法,其时间复杂度为n*log2 n 。
https://blog.csdn.net/u014688145/article/details/77945137 挑战程序竞赛系列(59):4.6树上的分治法(2) 传送门:POJ 1741 : Tree 思路: 首先还是求树的重心,这样可以把问题划分成多个子问题(树是天然的递归),之所以找重心考虑分治的效率问题,每次问题规模减少n/2,所以最终的时间复杂度为O(nlog2n)O(n \ log^2 n)。