Alice

王之泰201771010131《面向对象程序设计(java)》第七周学习总结

佐手、 提交于 2020-05-05 23:16:59
王之泰201771010131《面向对象程序设计(java)》第七周学习总结 第一部分:理论知识学习部分 第五章 第五章内容深度学习:    继承 :如果两个类存在继承关系,则子类会自动继承父类的方法和变量,在子类中可以调用父类的方法和变量,如果想要在子类里面做一系列事情,应该放在父类无参构造器里面。 在java中,只允许单继承,也就是说一个类最多只能显示地继承于一个父类。但是一个类却可以被多个类继承,也就是说一个类可以拥有多个子类。 java类不允许多继承。原因:   1,当不同的父类存在相同属性方法的时候,无法判定调用哪个。   2,由于子类实例化需要调用父类的无参构造器,无法识别是那个父类的构造器, 1.子类继承父类的成员变量   当子类继承了某个类之后,便可以使用父类中的成员变量,但是并不是完全继承父类的所有成员变量。具体的原则如下: 1)能够继承父类的public和protected成员变量;不能够继承父类的private成员变量; 2)对于父类的包访问权限成员变量,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承; 3)对于子类可以继承的父类成员变量,如果在子类中出现了同名称的成员变量,则会发生隐藏现象,即子类的成员变量会屏蔽掉父类的同名成员变量。如果要在子类中访问父类中同名成员变量,需要使用super关键字来进行引用。super.属性名 2

2018山东省ACM省赛 G题Games

安稳与你 提交于 2020-05-03 23:29:16
时间限制: 2 Sec 内存限制: 128 MB 提交: 70 解决: 17 [提交][状态][讨论版][命题人:admin] 题目描述 Alice and Bob are playing a stone game. There are n piles of stones. In each turn, a player can remove some stones from a pile (the number must be positive and not greater than the number of remaining stones in the pile). One player wins if he or she remove the last stone and all piles are empty. Alice plays first. To make this game even more interesting, they add a new rule: Bob can choose some piles and remove entire of them before the game starts. The number of removed piles is a nonnegative integer, and not greater than a

Gym

拈花ヽ惹草 提交于 2020-05-03 21:17:03
I. Shell Game time limit per test 1.0 s memory limit per test 256 MB input standard input output standard output Bob has discovered a new quality in himself — he likes to trick people a lot! In particular, Bob wants to try his tricking skills in the shell game. The shell game involves three identical cups and a single ball. In the beginning the host (that's Bob!) puts the cups upside down and places the ball inside one of the cups. Then he shuffles the cups and the player has to guess where the ball is. The host then lifts that cup, revealing whether the ball was inside or not. The player wins

2018ACM山东省赛 Games(dp取数)

£可爱£侵袭症+ 提交于 2020-05-03 21:04:55
Games Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description Alice and Bob are playing a stone game. There are n n piles of stones. In each turn, a player can remove some stones from a pile (the number must be positive and not greater than the number of remaining stones in the pile). One player wins if he or she remove the last stone and all piles are empty. Alice plays first. To make this game even more interesting, they add a new rule: Bob can choose some piles and remove entire of them before the game starts. The number of removed piles is a nonnegative integer,

Python中List的排序

人走茶凉 提交于 2020-05-01 14:23:15
Python对List的排序主要有两种方法:一种是用sorted()函数,这种函数要求用一个变量接收排序的结果,才能实现排序;另一种是用List自带的sort()函数,这种方法不需要用一个变量接收排序的结果.这两种方法的参数都差不多,都有key和reverse两个参数,sorted()多了一个排序对象的参数. 1. List的元素是变量 这种排序比较简单,直接用sorted()或者sort()就行了. list_sample = [1, 5, 6, 3, 7 ] # list_sample = sorted(list_sample) list_sample.sort(reverse= True) print (list_sample) 运行结果: [7, 6, 5, 3, 1] 2. List的元素是Tuple 这是需要用key和lambda指明是根据Tuple的哪一个元素排序. list_sample = [( ' a ' , 3, 1), ( ' c ' , 4, 5), ( ' e ' , 5, 6), ( ' d ' , 2, 3), ( ' b ' , 8, 7 )] # list_sample = sorted(list_sample, key=lambda x: x[2], reverse=True) list_sample.sort(key= lambda x: x

Python中List的排序

匆匆过客 提交于 2020-05-01 14:07:49
Python对List的排序主要有两种方法:一种是用sorted()函数,这种函数要求用一个变量接收排序的结果,才能实现排序;另一种是用List自带的sort()函数,这种方法不需要用一个变量接收排序的结果.这两种方法的参数都差不多,都有key和reverse两个参数,sorted()多了一个排序对象的参数. 1. List的元素是变量 这种排序比较简单,直接用sorted()或者sort()就行了. list_sample = [1, 5, 6, 3, 7 ] # list_sample = sorted(list_sample) list_sample.sort(reverse= True) print (list_sample) 运行结果: [7, 6, 5, 3, 1] 2. List的元素是Tuple 这是需要用key和lambda指明是根据Tuple的哪一个元素排序. list_sample = [( ' a ' , 3, 1), ( ' c ' , 4, 5), ( ' e ' , 5, 6), ( ' d ' , 2, 3), ( ' b ' , 8, 7 )] # list_sample = sorted(list_sample, key=lambda x: x[2], reverse=True) list_sample.sort(key= lambda x: x

密码学笔记(6)——复杂度及其相关内容

你说的曾经没有我的故事 提交于 2020-05-01 06:26:20
  密码学的笔记是从RSA密码体制开始的,上面的5篇差不多把RSA的基本内容介绍的差不多了。这个学期开始我选了一门叫做《应用密码学及其算法分析与复杂性》,一共上10周,到4月底课程结束,到那时候我的毕业论文也做的差不多了,因此这部分的内容是和课程同步的。   应用密码学的基础来源于算法,因此首先需要回顾一下算法的几大特性。 Thm1 (算法的特性) (1) 输入:一个算法有零个或多个外部量作为算法的输入。 (2) 输出:一个算法有一个或多个输出,但至少要有一个输出。 (3) 有穷性:算法中的每条指令的执行次数有限,执行每条指令的时间也有限,即不能是数学意义上的有限。 (4) 确定性:算法中的每一条指令必须有确切的含义,不存在二义性,并且在任何条件下,对于相同的输入只能得到相同的输出。 (5) 可行性:算法描述的操作可以通过已经实现的基本操作执行有限次来实现。   接下来自然就要引入算法的复杂度概念啦~ Def2 (算法的复杂性与复杂度) 算法的复杂性是算法运行所需要的计算机资源的量,其中时间资源的量称为 时间复杂性 ,空间资源的量称为 空间复杂性 。定量的说,给定正整数k,它表示一个确定问题输入数据量的大小或输入长度,统称为问题的计算规模。 算法的 时间复杂度 是指:从输入数据到计算出结果所需的时间,它是k的函数。 算法的 空间复杂度 是指:为完成算法最多需要的计算机存储量

Diffie-Hellman密钥协商算法

假如想象 提交于 2020-05-01 05:10:08
一、概述 Diffie-Hellman密钥协商算法主要解决秘钥配送问题,本身并非用来加密用的;该算法其背后有对应数学理论做支撑,简单来讲就是构造一个复杂的计算难题,使得对该问题的求解在现实的时间内无法快速有效的求解( computationally infeasible )。 理解Diffie-Hellman密钥协商的原理并不困难,只需要一点数论方面的知识既可以理解,主要会用到简单的模算术运算、本原根、费马小定理、离散对数等基础数论的知识。在 现代密码学中的基础数论知识梳理 中已经对这些知识做了必要的总结。 二、从何而来 DH密钥协商算法在1976年在Whitfield Diffie和Martin Hellman两人合著的论文 New Directions in Cryptography (Section Ⅲ PUBLIC KEY CRYPTOGRAPHY)中被作为一种公开秘钥分发系统( public key distribution system )被提出来。原文的叙述过程比较简单,但基本阐述了算法的原理以及其可行性。 在该论文中实际上提出了一些在当时很有创新性的思想。原论文重点讨论两个话题: (1)在公网通道上如何进行安全的秘钥分派。 (2)认证(可以细分为消息认证和用户认证)。 为了解决第一个问题,原文提出两种方法:公钥加密系统( public key

fail-safe fail-fast知多少

♀尐吖头ヾ 提交于 2020-04-30 07:08:12
fail-safe fail-fast知多少 简介 我们在使用集合类的时候,通常会需要去遍历集合中的元素,并在遍历中对其中的元素进行处理。这时候我们就要用到Iterator,经常写程序的朋友应该都知道,在Iterator遍历的过程中,是不能够修改集合数据的,否则就会抛出ConcurrentModificationException。 因为ConcurrentModificationException的存在,就把Iterator分成了两类,Fail-fast和Fail-safe。 Fail-fast Iterator Fail-fast看名字就知道它的意思是失败的非常快。就是说如果在遍历的过程中修改了集合的结构,则就会立刻报错。 Fail-fast通常在下面两种情况下抛出ConcurrentModificationException: 单线程的环境中 如果在单线程的环境中,iterator创建之后,如果不是通过iterator自身的remove方法,而是通过调用其他的方法修改了集合的结构,则会报错。 多线程的环境中 如果一个线程中创建了iterator,而在另外一个线程中修改了集合的结构,则会报错。 我们先看一个Fail-fast的例子: Map<Integer,String> users = new HashMap<>(); users.put(1, "jack"); users

99题--Python闯关

本小妞迷上赌 提交于 2020-04-29 15:22:11
1、将元组 (1,2,3) 和集合 {4,5,6} 合并成一个列表。 tuple_num = ( 1 , 2 , 3 ) dict_num = { 4 , 5 , 6 } list_num = [] for i in tuple_num: list_num.append(i) for i in dict_num: list_num.append(i) print (list_num) 2、在列表 [1,2,3,4,5,6] 首尾分别添加整型元素 7 和 0。 r = [ 1 , 2 , 3 , 4 , 5 , 6 ] r.insert( 0 , 7 ) r.append( 0 ) 3、反转列表 [0,1,2,3,4,5,6,7] 。 e = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] ww = e[::- 1 ] e.reverse() 4、反转列表 [0,1,2,3,4,5,6,7] 后给出中元素 5 的索引号。 e = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] ww = e[::- 1 ] for i in range ( len (ww)): if e[::- 1 ][i] == 5 : print (i) 5、分别统计列表 [True,False,0,1,2] 中 True,False,0,1,2的元素个数,发现了什么?