自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 约数-求一个数的约数、约数个数、约数之和

1、求一个数的约数vector<int> get_divisors(int x){ vector<int> ve; for(int i = 1; i * i <= x; ++i){ if(x % i == 0){ x /= i; ve.push_back(i); if(i != x / i) ve.push_back(x / i); } } return ve;}2、约数个数我们知道一个数X = (p1^a1) * (p2^

2021-06-23 01:16:50 566

原创 质数-判断、分解质因子、筛质数

1、质数(1)>=2的正整数;(2)只被1和本身整除。2、判断是否为素数bool is_prime(int x){ if(x <= 2) return false; for(int i = 2; i * i <= x; ++i){ if(x % i == 0) return false; } return true;}3、分解质因子void divide(int x){ for(int i = 2; i * i <= x; ++i){ if(x %

2021-06-22 23:29:13 223

原创 字符串哈希

1、字符串哈希首先明白字符串哈希可以做什么,它可以用来快速判断两个字符串是否相等。2、实现简单将就是将字符串转换为对应的数字,然后比较数字大小。举个例子:ABCDEFG转换为数字for(int i = 0; i < 7; ++i){h[i] = h[i -1] * P + str[i];}P通常是131,或者是13331。假设我们知道ABCD对应的值P1,ABCDEFG对应的值P2那么EFG的值就可以求出来P2 - P1 * (P ^ (7 - 4)),也就是相当于将ABCD左移

2021-06-21 17:02:12 194

原创 离散化-简单介绍

1、离散化对于很大范围的元素,只有个别的元素对我们有用,我们将这些元素提取出来,映射到1~N(0 ~ N-1)范围,然后对于映射后的进行处理。2、实现例如解决如下问题:无限长的数组,其中每个位置上的元素都是0。输入n个位置,并且给每个位置上元素加上C。m个操作,给一个[l,r],求处于该范围的元素和。思路:考虑到范围很大,但是只有个别的位置有用,我们将这些位置进行提取,映射到1~N上,然后求一个前缀和(为了保证前缀和好实现,没有映射到0 ~ N-1了),[l,r]也需要将其映射到1 ~ N上

2021-06-21 16:22:59 161

原创 Hash-开放定址法、拉链法

hash是将范围大的离散的数据映射到小的范围中,当遇到冲突时通常有两种解决方法,第一种开放定址法解决,当冲突时,查找下一个位置继续判断是否冲突(线性探测法),直到无冲突为止;另一种是拉链法,首先计算应该映射的位置,然后在该位置上再建立一条链,存储相应映射到该位置的数据,查找时,也是对于链上元素进行遍历,删除时只需要打上标记,通常不实际进行删除。1、开放定址法例如解决如题:有n个操作,i 56,表示插入56f 56,表示查找56。通常开放定址法的hash存储空间为插入元素个数的2~3倍,这样可以大

2021-06-21 15:21:44 568

原创 单调栈-简单描述

1、单调栈含义维护一个单调递增或递减的栈,通常当访问到当前元素,和栈顶元素进行比较,如果栈顶元素不满足,则弹出,满足则输出栈顶元素。2、实现例如解决如下问题:针对数组中每个元素,找到离它左边最近的小于它的元素。#include<iostream>using namespace std;const int N = 100010;int stk[N]; // 栈// 维护一个单调递增的栈,遍历到当前元素,和栈顶元素进行比较,如果栈顶元素>=当前元素,// 将栈顶元素进行弹

2021-06-21 00:27:14 63

原创 单调队列-简单描述

1、单调队列含义维护一个队列,递增或递减,通常用来求一段区间的最大值或最小值。2、实现例如求一个数组中各个位置窗口为k(从右到左)的最大元素和最小元素。const int N = 100050;int a[N], q[N]; // a表示原数组,q表示队列int n, k; // n表示数组元素个数,k表示窗口大小int hh = 0, tt = -1; // hh表示队头,tt表示队尾// 首先输出窗口的最小值for(int i = 0; i < n; ++i){

2021-06-20 23:43:23 69

原创 STL-vector

vector1、概念vector是变长数组,动态增加存储空间,采用倍增思想,减少开辟空间次数,提高效率。2、使用初始化:vector a(10,5); // 创建10个5求长度:size()判空:empty()清空:clear()获取首元素:front()获取末尾元素:back()压入:push_back()弹出:pop_back()迭代器遍历:begin(),end()遍历有三种方式:1、for(int i = 0; i < a.size(); ++i) cout &lt

2021-06-12 23:17:12 65

原创 Java-开发团队调度软件

一、基本介绍该项目是尚硅谷中JavaSE项目三,涉及内容有继承、异常、多态、接口等知识。1、主界面主界面如上图所示,主要关注点:职位、状态、奖金、股票、领用设备。2、团队列表团队成员现在包含ID是2的职员,具体显示属性和主界面也有所不同。3、代码模块domain中定义的职员和设备信息,其中Employee是Programmer的父类,Programmer是Designer的父类,Designer是Architect的父类,依次继承;Equipment是接口类,NoteBook、PC、Pr

2021-06-08 00:27:19 315

原创 Java-异常处理

一、概念1、程序执行过程中发生的不正常情况称为“异常”。2、分为两类:1)Error:Java虚拟机无法解决的严重问题,如JVM系统内部错误、资源耗尽等,StackOverflowError和OOM。2)Exception:其它因编程错误或偶然的外在因素导致的一般性问题,有编译时异常和运行时异常,编译时异常包含:IOException、ClassNotFoundException;运行时异常包含:NullPointerException、ArrayIndexOutofBoundsExceptio

2021-06-06 16:33:59 39

原创 Java-内部类

1、概念在一个类的内部定义类,前者称为外部类,后者称为内部类。2、分类2.1 成员内部类(静态、非静态)(1)作为外部类的成员;(2)也可以定义属性、方法、构造器等,可以被final修饰;(3)非静态成员内部类可以调用外部类的非静态方法,外部类名.this.非静态方法名;(4)可以被static,四种权限修饰符进行修饰。(5)如何去实例化成员内部类对象?创建静态成员内部类对象:外部类名.内部类名 a = new 外部类名.内部类名();创建非静态成员内部类对象:先实例化外部类对象,在

2021-06-05 01:00:36 73

原创 Java-接口

接口1、概念接口就是规范,定义的是一组规则,本质是契约,标准,规范。2、使用用interface来定义,Java中类和接口是并列的结构3、如何定义接口3.1 JDK7及以前定义全局常量,public static final的,书写时可以省略;定义抽象方法,public abstract;3.2 JDK8除了上述,还可以定义静态方法、默认方法。注:(1)接口中无法定义构造器,意味着无法实例化接口;(2)如果实现类覆盖了接口中的所有抽象方法,则此实现类就可以实例化;否则,此实现类仍

2021-06-04 17:21:15 58

原创 Java-抽象类、抽象方法

抽象类、抽象方法抽象类没有具体的实例,非常抽象。abstract可以用来修饰类和方法。abstract修饰类:(1)此类不能实例化;(2)抽象类一定有构造器,便于子类实例化时进行调用;(3)使用时,提供子类来实例化,完成相关的操作。abstract修饰方法:例如:public abstract void solve();(1)没有方法体;(2)包含抽象方法的类一定是抽象类,反之,抽象类中可以没有抽象方法;(3)如果子类继承抽象类,要么子类需要重写抽象类中的所有抽象方法,要么子类需要声明成

2021-06-04 15:57:34 58

原创 Java-static

static1、修饰属性1)static修饰的变量称为静态变量(类变量),共享同一个空间,多个对象共享同一个静态变量。2)静态变量随着类加载而加载。静态变量要早于对象的创建。3)非静态属性称为实例变量。注:不能通过类来调用实例变量。2、修饰方法1)随着类的加载而加载,可以通过类名.方法名进行调用static方法。2)静态方法只能调用静态的方法和属性;非静态方法既可以调用非静态的方法和属性,也可以调用静态的方法和属性。注:静态方法中不能使用this,super,主要就是考虑生命周期。如何确

2021-06-01 14:13:52 52

原创 Java-包装类

1、包装类理解有了int、double这些,为什么还要有相对应的包装类呢?因为int、double不是类,不能够通过实例化对象来调用方法,将其包装成Integer、Double可以使用相应的方法,可以有继承、有多态,符合面向对象的思想。2、基本数据类型、包装类、String之间转换基本数据类型—>包装类:Integer in1 = new Integer(12);Integer in2 = new Integer(“12”);Float f1 = new Float(12.3f);Fl

2021-05-31 17:58:37 75

原创 剑指 Offer 03. 数组中重复的数字

题目:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。思路:首先从题目中可以得出,数组中肯定有重复的数字,我们可以通过交换的方式来判断是否存在重复数字,例如对于nums[0]我们将它交换到nums[nums[0]],这样nums[0]就对应于数组的下标,然后重复进行交换,直到交换双方是相同数字时退出循环。代码:class Solution {public:

2021-05-30 17:55:33 56

原创 equals()和==区别

一、“==”1、可以使用在基本数据类型变量和引用数据类型变量中。2、基本数据类型,比较数值,类型不需要相同。3、引用数据类型,比较地址值。二、equals()1、首先它是一个方法,需要通过对象来调用。2、只比较引用数据类型。3、Object类中的equals()和“==”作用是相同的。public boolean equals(Object obj){ return this == obj;}4、String、Date、File、包装类等都重写了Object类中的equals()方法

2021-05-28 21:29:27 48

原创 instanceof学习

先给类Person,Man和Woman,其中Person是Man和Woman的父类。Person p1 = new Man(); //父类对象p1是指向子类的引用。现在我们可以通过p来调用Man中的方法,但是我们只能调用父类和子类共同声明的属性和方法。问题:如何才能调用子类特有的方法?解决方法:使用向下转型,Man m1 = (Man)p1; // 向下进行转型使用强制转换符。这时我们再去调用子类中特有的属性和方法就可以成功。遗留问题:使用强转时可能出现异常,现在再去将p1转换成Woman

2021-05-28 20:33:46 50

原创 21考研中科大软件学院,上岸!

百感交集,特写此博客记录!2020年是人生中最特殊的一年,经历了许多挫折,也不能说是挫折吧,是人生中很好的一次锻炼机会!全球经历了疫情的袭击,在家中一直待到8月底才去学校,因为自己绩点是在保研边缘,所以自己一直保研和考研一起准备,因为自己没有什么好的奖项(这个想法是错的,其实靠绩点高的话足够保研。),所以侧重于考研。就先说说保研失败的经历吧!从4,5月份,看到公众号上许多保研信息,自己也就尝试着去寻找一些自己可能能够保上的学校,结果就是夏令营0入营,也不对,很奇怪不知道为啥有一个中科大科学岛物理的入营

2021-03-27 17:21:17 1475 4

原创 Codeforces Global Round 8 - 坑较多

C. Even Picture题目链接:https://codeforces.ml/contest/1368/problem/C题目描述:构造一个连通图,图中有k个灰格4个面都是灰格,剩下(k-n)个灰格周围2个面是灰格。记住不需要找最小k,题目中最后来一句there exists an answer satisfying all requirements with a small enough k。你就不能说能找到k不就行了,还足够小!!太惨了!!!找最小k搞得很难受,直接构造就轻松多了。。。。。参

2020-06-20 10:51:02 370

原创 第三篇博客 codeforces round #644 (div 4变成div 3)

F. Spy-string题目链接:点击就送题目描述:对于n个字符串然后找到一个字符串使得这个字符串和前面n个字符串对应位置最多只有一个字符不同。解题思路:暴力就完事了!!!可以直接对第一个字符串,然后将其每个位置都换成’a’-‘z’(每次只能一个位置字符变),然后再对剩余n-1字符串判断是否相等或者只差一个字符不同。代码:#include<bits/stdc++.h>using namespace std;char ch[15][15];char ans[15];int

2020-05-26 16:41:35 234

原创 第二篇博客 codeforces round #642 div3

D. Constructing the Array题目链接:点击查看题目描述:给一个n个0的数组,每次都去寻找最左边的最长连续0子段的中间位置进行赋值。题目分析:可以使用优先队列进行解决,每次都是将node(l,r)添加进去,每次取出来的都是连续0长度最长或者是最左边的段。代码:#include<bits/stdc++.h>using namespace std;int n;int a[200005];struct node{ int l; int r; node(i

2020-05-16 08:10:46 188

原创 记录第一篇博客codeforces round #641 div2

题目链接:点击查看做了不少div2了,没想到b就是dp了,可能div4出来了,div2,div3都要增加点难度。(我只是个小caiji)题目描述:就是从数组中找最长上升子序列,只不过加了限制,找出来的元素下标要成比例。题目分析:显然dp就可以解决,LIS平时dp做法就是O(N*N),而这题刚好给你成比例,复杂度降为O(nlogn),和埃式筛法复杂度一样吧!转移方程:dp[j]=max(dp[j],dp[i]+1)。代码:#include<bits/stdc++.h>using

2020-05-14 18:06:12 888 1

中科大软件学院安卓重点.rar

zzw,19章100页整理,android+linux内核+驱动

2021-11-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除