Bash游戏
题目-Bash游戏题目链接:51Nod—1066 Bash游戏
ac代码12345678910111213141516171819202122232425262728#include<stdio.h>#include<stdlib.h>#define _MAX 10000int a[_MAX];int b[_MAX];int bash(int N, int K){ if (N % (K + 1) == 0) return 2; return 1;}int main(){ int T; scanf("%d", &T); for (int i = 0; i < T; i++){ scanf("%d%d", a + i, b + i); } for (int i = 0; i < T; i++){ if (bash(a[i], b[i]) == 1){ ...
自动装配
自动装配自动装配说明
自动装配是使用spring满足bean依赖的一种方法
spring会在应用上下文中为某个bean寻找其依赖的bean。
Spring中bean有三种装配机制,分别是:
在xml中显式配置;
在java中显式配置;
隐式的bean发现机制和自动装配。
Spring的自动装配需要从两个角度来实现,或者说是两个操作:
组件扫描(component scanning):spring会自动发现应用上下文中所创建的bean;
自动装配(autowiring):spring自动满足bean之间的依赖,也就是我们说的IoC/DI;
组件扫描和自动装配组合发挥巨大威力,使得显示的配置降低到最少。
推荐不使用自动装配xml配置 , 而使用注解 .
测试环境搭建1、新建一个项目
2、新建两个实体类,Cat Dog 都有一个叫的方法
12345678910public class Cat { public void shout() { System.out.println("miao~"); }} ...
依赖注入(DI)
Dependency injection概念
依赖注入(Dependency Injection,DI)。
依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源 .
注入 : 指Bean对象所依赖的资源 , 由容器来设置和装配 .
Set注入(重点)要求被注入的属性 , 必须有set方法 , set方法的方法名由set + 属性首字母大写 , 如果属性是boolean类型 , 没有set方法 , 是 is .
测试pojo类 :
Address.java
123456789101112public class Address { private String address; public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
Student.java
123 ...
逆元
逆元问题引入对于取余运算,有以下一些性质:
(a+b)\%p=(a\%p+b\%p)\%p \\
(a-b)\%p=(a\%p-b\%p)\%p \\
(a\times b)\%p=(a\%p\times b\%p)\%p \\
a^b\%p=((a\%p)^b)\%p唯独除法是不满足的:
(\frac{a}{b})\%p \neq (\frac{a\%p}{b\%p})\%p证明:
设a=k_0p+a',b=k_1p+b',k_0,k_1\in Z \\
(\frac{a\%p}{b\%p})=(\frac{a'}{b'})= \frac{(a-k_0p)}{(b-k_1p)} \\
\frac{(a-k_0p)}{(b-k_1p)} \neq \frac{a}{b}而对于一些题目,我们必须在中间过程中进行求余,否则数字太大,电脑存不下,那如果这个算式中出现除法,我们就需要逆元了,将除法运算转换为乘法运算。
定义
若a \cdot c≡1(mod \ b),且a与b互质,就定义c为a的逆元,记作a^{-1}。也可以叫做c为a在mod\ p意义下的倒数。 \\
所以\frac{a ...
斐波那契
矩阵快速幂求斐波那契基本形式
用矩阵分析
\left[
\begin{matrix}
F_n\\
F_n-1
\end{matrix}
\right]
=\left[
\begin{matrix}
F_n-1+F_n-2\\
F_n-1
\end{matrix}
\right]
=\left[
\begin{matrix}
1*F_n-1+1*F_n-2\\
1*F_n-1+0*F_n-2
\end{matrix}
\right]
=\left[
\begin{matrix}
1&1\\
1&0\\
\end{matrix}
\right] *
\left[
\begin{matrix}
F_{n-1}\\
F_{n-2}
\end{matrix}
\right]
=\left[ \begin{matrix} 1&1\\ 1&0\\ \end{matrix} \right]^{n-1}
* \left[ \begin{matrix} F_1\\ F_0 ...
快速上手Spring
Hello Spring导入jar包注 : spring 需要导入commons-logging进行日志记录 . 我们利用maven , 他会自动下载对应的依赖项 .
12345<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.1.10.RELEASE</version></dependency>
编写代码1、编写一个Hello实体类
1234567891011121314public class Hello { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } ...
概述及IOC理论推导
Spring概述
简介Spring : 春天 —->给软件行业带来了春天
2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架。
2004年3月24日,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版。
很难想象Rod Johnson的学历 , 他是悉尼大学的博士,然而他的专业不是计算机,而是音乐学。
Spring理念 : 使现有技术更加实用 . 本身就是一个大杂烩 , 整合现有的框架技术
官网 :http://spring.io/
官方下载地址 : https://repo.spring.io/libs-release-local/org/springframework/spring/
GitHub : https://github.com/spring-projects
优点1、Spring是一个开源免费的框架 , 容器 .
2、Spring是一个轻量级的框架 , 非侵入式的 .
3、控制反转 IoC , 面向切面 Aop
4、对事物的支持 , 对框架的支持
…….
一句话概括:
Spring是一个 ...
缓存
缓存简介1、什么是缓存 [ Cache ]?
存在内存中的临时数据。
将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。
2、为什么使用缓存?
减少和数据库的交互次数,减少系统开销,提高系统效率
3、什么样的数据能使用缓存?
经常查询并且不经常改变的数据。
Mybatis缓存
MyBatis包含一个非常强大的查询缓存特性,它可以非常方便地定制和配置缓存。缓存可以极大的提升查询效率。
MyBatis系统中默认定义了两级缓存:一级缓存和二级缓存
默认情况下,只有一级缓存开启。(SqlSession级别的缓存,也称为本地缓存)
二级缓存需要手动开启和配置,他是基于namespace级别的缓存。
为了提高扩展性,MyBatis定义了缓存接口Cache。我们可以通过实现Cache接口来自定义二级缓存
一级缓存一级缓存也叫本地缓存:
与数据库同一次会话期间查询到的数据会放在本地缓存中。
以后如果需要获取相同的数据,直接从缓存中拿,没必须再去查询数据库;
测试1、在 ...
动态SQL
动态SQL介绍什么是动态SQL:动态SQL指的是根据不同的查询条件 , 生成不同的Sql语句.
1234567891011官网描述:MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。虽然在以前使用动态 SQL 并非一件易事,但正是 MyBatis 提供了可以被用在任意 SQL 映射语句中的强大的动态 SQL 语言得以改进这种情形。动态 SQL 元素和 JSTL 或基于类似 XML 的文本处理器相似。在 MyBatis 之前的版本中,有很多元素需要花时间了解。MyBatis 3 大大精简了元素种类,现在只需学习原来一半的元素便可。MyBatis 采用功能强大的基于 OGNL 的表达式来淘汰其它大部分元素。 ------------------------------- - if - choose (when, otherwise) - trim (where, ...
一对多和多对一的处理
多对一处理多对一的理解:
多个学生对应一个老师
如果对于学生这边,就是一个多对一的现象,即从学生这边关联一个老师!
数据库设计
1234567891011121314151617181920212223CREATE TABLE `teacher` (`id` INT(10) NOT NULL,`name` VARCHAR(30) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=INNODB DEFAULT CHARSET=utf8INSERT INTO teacher(`id`, `name`) VALUES (1, '秦老师');CREATE TABLE `student` (`id` INT(10) NOT NULL,`name` VARCHAR(30) DEFAULT NULL,`tid` INT(10) DEFAULT NULL,PRIMARY KEY (`id`),KEY `fktid` (`tid`),CONSTRAINT `fktid` FOREIGN KEY (`tid`) REFERENCES `teacher` ...





