Watermelon

2019icpc徐州网络赛

梦想的初衷 提交于 2021-02-12 09:32:55
A Who is better? 题意 excrt+斐波那契博弈 分析 Java的BigInteger对象默认为null,不能直接比较。 代码 import java.math.BigInteger; import java.util.Scanner; public class Main { static int n; static BigInteger[] a=new BigInteger[25]; static BigInteger[] b=new BigInteger[25]; static BigInteger INF=BigInteger.valueOf((long)1e15); static BigInteger[] fib=new BigInteger[110]; static int cnt=0; static void init(){ fib[1]=BigInteger.ONE; fib[2]=BigInteger.ONE; cnt=2; for(int i=3;i<110;i++){ fib[i]=fib[i-1].add(fib[i-2]); if(fib[i].compareTo(INF)>0){ break; } cnt++; } } static boolean check(BigInteger t){ for(int i=1;i<=cnt;i++){

Python多继承的坑与MRO C3广度优先算法

牧云@^-^@ 提交于 2020-08-07 02:41:09
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 前言 继承(英语:inheritance)是面向对象软件技术当中的一个概念。如果一个类别B“继承自”另一个类别A,就把这个B称为“A的子类”,而把A称为“B的父类别”也可以称“A是B的超类”。继承可以使得子类具有父类别的各种属性和方法,而不需要再次编写相同的代码。在令子类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类别的原有属性和方法,使其获得与父类别不同的功能。另外,为子类追加新的属性和方法也是常见的做法。 一般静态的面向对象编程语言,继承属于静态的,意即在子类的行为在编译期就已经决定,无法在运行期扩展。 有些编程语言支持多重继承,即一个子类可以同时有多个父类,比如C++编程语言;而在有些编程语言中,一个子类只能继承自一个父类,比如Java编程语言,这时可以透过实现接口来实现与多重继承相似的效果。 现今面向对象程序设计技巧中,继承并非以继承类别的“行为”为主,而是继承类别的“类型”,使得组件的类型一致。另外在设计模式中提到一个守则,“多用合成,少用继承”,此守则也是用来处理继承无法在运行期动态扩展行为的遗憾。 Python的继承 Python有单继承与多继承。单继承即子类继承于一个类,多继承即子类继承于多个类,多继承会比较少遇到,本章节主要讲单继承。

Spring5-Reactor函数式编程

喜你入骨 提交于 2020-08-06 09:05:28
content {:toc} 前言 反应式编程是一种可以替代命令式编程的编程范式。这种可替代性存在的原因在于反应式编程解决了命令式编程中的一些限制。理解这些限制,有助于你更好地理解反应式编程模型的优点 反应式流规范 对比 Java 中的流 Java的流和反应式流Java的流和反应式流之间有很多相似之处。首先,它们的名字中都有流(Stream)这个词。 它们还提供了用于处理数据的函数式API。事实上,正如你稍后将会在介绍Reactor时看到的那样,它们甚至可以共享许多相同的操作。 Java的流通常都是同步的,并且只能处理有限的数据集。从本质上来说,它们只是使用函数来对集合进行迭代的一种方式。 反应式流支持异步处理任意大小的数据集,同样也包括无限数据集。只要数据就绪,它们就能实时地处理数据,并且能够通过回压来避免压垮数据的消费者。 反应式流规范 反应式流规范可以总结为4个接口:Publisher、Subscriber、Subscription和Processor。 Publisher负责生成数据,并将数据发送给Subscription(每个Subscriber对应一个Subscription)。 Publisher接口声明了一个方法subscribe(),Subscriber可以通过该方法向Publisher发起订阅。 public interface Publisher<T> {

Python语言上机题实现方法(持续更新...)

最后都变了- 提交于 2020-04-13 15:57:43
【今日推荐】:为什么一到面试就懵逼!>>> Python语言上机题实现方法(持续更新...) 1.【字符串循环左移】给定一个字符串S,要求把S的前k个字符移动到S的尾部,如把字符串“abcdef”前面的2个字符‘a’、‘b’移动到字符串的尾部,得到新字符串“cdefab”,称作字符串循环左移k位。 输入格式: 输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。 输出格式: 在一行中输出循环左移N次后的字符串。 输入样例: abcd 2 输出样例: cdab 【 代码】: a = input() N = int(input()) b = a[0:N] c = a[N:len(a)] + b print(c) 2.【最后一个单词】计算字符串最后一个单词的长度,单词以空格隔开。 输入格式: 一行字符串,非空,长度小于5000。 输出格式: 整数N,最后一个单词的长度。 输入样例: hello world 输出样例: 5 【代码】: a = input() b = a.split(" ") c = b[len(b)-1] print(len(c)) 3.【计算字符个数】接受一个由字母和数字组成的字符串,和一个字符,然后输出输入的字符串中含有该字符的个数。不区分大小写。 输入格式: 输入一个由字母和数字组成的字符串,和一个字符,以空格隔开。

机器学习算法(一)——kNN算法

☆樱花仙子☆ 提交于 2020-02-27 05:42:50
一、kNN算法简介 1-1、kNN算法简介 kNN算法,即k最近邻算法(k-NearestNeighbor)是数据挖掘算法中最基础的算法之一。 所谓k最近邻就是k个最近的邻居的意思 。 1-2、kNN算法思想 kNN是一种分类(classification)算法,它输入基于实例的学习(instance-based learning), 属于懒惰学习 (lazy learning)。即kNN没有显式的学习过程,也就是说没有训练阶段,数据集事先已有了分类和特征值,待收到新样本后直接进行处理。与急切学习(eager learning)相对应。 kNN是通过测量不同特征值之间的距离进行分类。 1-3、kNN算法工作机制 kNN工作机制非常简单:给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个“邻居”的信息来进行预测。 通常在分类任务中使用“投票法” ,即选择这k个样本中出现最多的类别标记作为预测结果; 在回归任务中可使用“平均法” ,即将这k个样本的实值输出标记的平均值作为预测结果; 还可基于距离的远近进行加权平均或加权投票 。 1-4、kNN算法决定要素 kNN算法使用的模型,其实是特征空间的划分。该算法主要取决于三个因素: 1. 距离度量 2. k值 3. 分类决策规则 其中,两个实例之间的距离反映其相似程度。 一般使用欧氏距离计算 。 因此