- 博客(26)
- 收藏
- 关注
原创 JavaBug(1)——Cannot make a static reference to the non-static method Judge(int) from the type A
package _4;import java.util.LinkedList;import java.util.Scanner;public class A { public boolean Judge(int o) { if(o!=2&&o!=4&&o!=8&&o!=16) { System.out.println("error"); return false; } else return true; } publi
2021-12-04 09:36:05 665
原创 Static含义
1.static 修饰的域,我们叫静态域,它是归类所有的,被所有对象所共享,只有一个2.static修饰的区块,域只会初始化一次3.static修饰的域或方法,可以直接通过类的名字加上.进行调用4.static修饰的方法内不能直接使用非静态成员static关键字,告知编译器main函数是一个静态函数。也就是说main函数中的代码是存储在静态存储区的,静态方法在内存中的位置是固定的,即当定义了类以后这段代码就已经存在了。如果main()方法没有使用static修饰符,那么编译不会出错,但是如果你试图执
2021-10-15 14:37:52 157
原创 JAVA核心技术卷一第三章:对象与类(第二周)
1.类类(class)是构造对象的模板或蓝图由类构造(construct)对象的过程称为创建类的实例(instance)java是面向对象设计的程序语言,对于一些规模较小的问题,将其分解为过程的开发方式比较理想。面对对象更加适合解决规模较大的问题。OOP(object-oriented programming)面向对象程序设计调换了传统的结构化程序设计思路,调换了考虑的次序,将数据放在第一位,然后再考虑操作数据的算法。封装(encapsulation,有时称为数据隐藏)是处理对象的一个重要概念。
2021-05-23 22:51:13 139
原创 搜索算法
搜索算法是利用计算机的高性能来有目的地穷举一个问题的部分或所有的可能情况,从而求出问题的解的一种方法。相比于单纯的枚举算法有了一定的方向性和目标性。算法是在解的空间里,从一个状态转移(按照要求拓展)到其他状态,这样进行下去,将解的空间中的状态遍历,找到答案(目标的状态)。在深入研究搜索算法之前,需要重新认识一下状态和状态转移状态(state)是对问题在某一时刻进展情况的数学描述,或者是数学抽象。每一个状态都会是答案的一个“可能的”解。状态的转移就是问题从一个状态转移到另一个状态,这样就可以进行搜索
2021-05-23 19:13:47 356
原创 递归算法
递归算法是一种直接或者间接调用自身函数或者方法的算法。说简单了就是程序自身的调用。递归算法就是将原问题不断分解为规模缩小的子问题,然后递归调用方法来表示问题的解。(用同一个方法去解决规模不同的问题)//这个感觉像是线性dp递归之前就有接触,最开始看见的递归就是从c++课本上看见的用自递归的方式求n的阶乘的问题:int find(int n){ if(n=0) return 1; else return n*find(n-1); }这是最开始接触的最简单的递归程序。现在在acm中运用递
2021-05-23 18:02:08 356
原创 JAVA核心技术卷一第三章:运算符(第一周和第二周)
运算符运算符用于连接值1.算术运算符+,-,*,/可移植性是java语言的设计目标之一,为此java程序设计语言承认了最优性能与理想的可再生性之间存在的冲突,并给予了改进。在默认情况下,现虚拟机设计者允许你对中间计算结果采用扩展的精度。但是对于使用strictfp关键字标记的方法(函数、主函数)必须使用严格的浮点计算来生成可再生的结果public static strictfp void main(String[],args)那么在main方法中的所有指令都将使用严格的浮点计算。如果将一个类
2021-05-23 17:04:29 119
原创 JAVA核心技术卷一第三章:变量与常量(第二周)
1.变量与常量/*这个地方与c++差别不是很大所以就不进行太多的解释了*/逐一表明每一个变量可以提高程序的可读性。在java中编译器认为使用未初始化的变量的值是错误的int vacationDays;System.out.println(vacationDays);//ERROR--variable not initialized...
2021-05-20 23:07:21 84
原创 总结(完全背包)
https://blog.csdn.net/qq_43408367/article/details/113982821?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162112742816780261972416%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162112742816780261972416&biz_id=0&utm_med
2021-05-16 11:13:29 228
原创 JAVA自学档案-第三章(第一周)
Java的基本程序设计结构标画:首先,Java区分大小写。如果出现了大小写拼写错误,程序将无法运行。public成为访问修饰符(access modifier),这些修饰符用于控制程序的其他部分对这段代码的访问级别。1:public 只有当前类、同一包内、子孙类(同一包)、子孙类(不同包) 其他包都能够访问2:protected 其他包不能够访问3:default 子孙类(不同包) 其他包不能访问4:private 子孙类(同一包) 子孙类(不同包) 其他包不能访问类当前需要
2021-05-15 14:10:08 133
原创 JAVA自学档案-第一章(第一周)
1.1JAVA程序设计平台标画一旦一种语言得到广泛应用,与现存代码尴尬的兼容性问题就摆在了人们的面前java有一个庞大的库,其中包含了很多可重用的代码,以及一个提供诸如安全性、跨操作系统的可移植性以及自动垃圾收集等服务的执行环境。...
2021-05-15 13:54:47 111
原创 总结(01背包问题)
01背包问题题目: 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 基本思路:这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放总体思路 根据动态规划解题步骤(问题抽象化、建立模型、寻找约束条件、判断是否满足最优性原理、找大问题与小问题的递推关系式、填表、寻找解组成)找出01背包问题的最优解以及解组成,然后编写代码实现。背包问题的解决过程筛选自课件背包问题有的时候看起来会像时贪心的题目一样,这个时候需要判
2021-05-09 15:28:15 281
原创 区间dp入门总结以及本周感悟
本周学习的区间dpacm的学习好像是快要告一段落了,但是就目前来看,很多的知识还没有学习,而且我目前发现自己有几个很大的弊端(或者说是大学期间对自己而已很必要的一些学习技能和生活技能:1.很多情况下,身体劳累带动精神劳累因为最近一直在锻炼身体,身体累的之后一休息就时间过去了,精神劳累休息时间长了之后就会转化为精神偷懒,这导致我本身是用锻炼来发泄情绪来增强学习能力的过程变成了促使自己偷懒的过程,这是需要改变的地方我认为以后锻炼的时间可以变得更为灵活,比如晚自习下自习之后可以延长学习的时间到9.40然后
2021-04-24 23:17:11 203
原创 Git
什么是 Git?Git 是一种分布式开源版本控制系统 (VCS),您可以用它存储代码、跟踪修订历史记录、合并代码更改,并在需要时恢复为较早的代码版本。Git 基本知识Git将您的源代码及完整的开发历史记录存储在本地存储库中。您可以创建称作分支的源代码副本,然后与主版本并行作业。完成作业后,您可以提交更改以保存进度。或者,您也可以将分支合并回主版本。每次提交时,Git都会为您的作业创建快照,并使用名为 diff 的可视化操作将其与先前版本进行比较。如果在之前提交后发生更改,Git会在存储库中
2021-04-20 19:15:58 103
原创 积累两个优化方法(动归用)
离散化离散化是一种优化思想,在很多时候如果数据范围给的太大,而实际题目中的给出的数据量很小,并没有使得范围达到饱和的时候可以用以减小复杂度离散化有两种方法,对应着不同的题目类型方法一:重复元素离散化后的数字相同1.用一个辅助的数组把你要离散的所有数据存下来2.排序,排序是为了后面的二分。(有待研究二分的想法和思路)3.去重,因为我们要保证相同的元素离散化后数字相同。4.索引,再用二分把离散化后的数字放回原数组。方法二:(不会)重复元素离散化后的数字不相同1.用一个辅助的数组把你要离散的所有
2021-04-18 00:13:13 146
原创 第5周总结
1.前缀和前缀和就是将一个区间内的数总和在一起,比如for (int i = 1; i <= n; i ++ ){ cin >> a[i]; s[i] = s[i - 1] + a[i];}前缀和就是从位置1到位置i这个区间内的所有的数字之和。前缀和的优势:以(o1)的时间复杂度得到某块区间的总和。复杂度低,计算方便,在输入的过程中就能计数。我们可以灵活的运用前缀和:如规定i=0;j=0,然后再i循环中定义一个单次的j操作,两重循环一重循环输入,一重计算和。2.
2021-04-10 22:34:46 72
原创 第6周总结
本周主要学了动态规划**动态规划题目特点:**1.计数-有多少种方式走到右下角-有多少种方法选出k个数使得和是sum2.求最大最小值-从左上角走到右下角路径的最大数字和-最长上升子序列长度3.求存在性-取石子游戏,先手是否必胜-能不能选出k个数使得和是sum四步1.确定状态状态在动态规划中的作用属于定海神针简单的说,解动态规划的时候需要开一个数组,数组的每个元素f[i]或者f[i][j]代表什么-类似于解数学题中,X,Y,Z代表什么确定状态需要两个意识:-最后一步
2021-04-10 19:44:22 101
原创 我
第一次作业总结第一次学习acm的作业,总结了一些经验,这里不止只有学习方面的经验,还有一些对未来的自己的劝告1.劝告自己不要再懒惰(1)大学很重要大学是自己及其关键的时期,不要去选择安逸,很多事情都是开头难,很多问题都是在开始的时候有困难,我感觉这一点在学习计算机的过程中是极为明显的,很多计算机的概念在起初的时候是很难接受的,但是随着应用实践的进行,我才能慢慢的理解这些知识并总结出自己所需要的知识。(2)休息可以,懈怠不行让自己适当的休息是正确的,但是如果休息时间过于饱和,就是懒惰,做事情一定要
2021-03-31 00:00:39 114 1
原创 第3周总结
选择acm3周后的感悟1.时间安排选择了acm并不只是将时间全部投入到acm中去,现在的我明白了是将时间合理安排的更好,起初将时间全部投入到acm的学习中去导致我很多其他的学习课程没有跟上进度,使得需要学习的知识不断堆积,和acm的学习产生了冲突计划:制定时间表,用最短的时间结束其他课程的学习,并安排零碎时间对其进行复习巩固2.学习技巧和知识来源学习acm课程之后,发现要想学好acm不能知识将知识进行积累,如果只是把知识学会了,是达不到老师要求的程度的,是达不到能与其他人对抗的程度的。思维与对题目
2021-03-27 16:10:09 192 3
原创 第一次打cf
第一次打cf一个题也做出来,就这样说,我是废物,但是有志气,咱继续总结错误1.不要急于求成,做题的速度一定要慢下来。2.题目的信息要用纸来理顺(入门期间)3.在题目确定思路后,一定要思考算法的复杂度,如果复杂度过高,不要留念,直接切换思路或者改思路。4.第一次打比赛很多做题的基本思路并没有,所以之后不能只做老师布置的题目,要找往年cf的低档题做起来,并不断总结不同的题目类型和做法。5.cf中很多题目多为数学题目,不要着重于拟真,拟真是行不通的,要把题目中的信息转化为更加接近本质可以操作的数据。
2021-03-26 01:09:07 126 1
原创 2021-03-25
在做题目的时候,发现做一道题目前,首先要理解题意,然后写下来初步的大体思路,然后再去一步步测试,在做出题目之后还要把题目的题解写出来与网上的文章比对,看看有无可以优化的思路和代码。...
2021-03-25 00:11:18 41
原创 贪心木棒学习解题过程中的发现
1.memset在解题的过程中很多地方都遇到了这个函数,上网搜索发现用于快速给大型数据赋初值的函数。头文件:"memory.h"或"string.h"函数原型:void *memset(void *s,int ch,size_t n);将s中前n个字节(typedef unsigned int size_t)用ch替换并返回s,作用是在一段内存块中填充某个给定的值。它是对较大的结构体或数组清零操作的一种最快的方法2.fillfill()函数参数:fill(first,last,val);//
2021-03-21 10:20:07 92
原创 3月20日总结
本周主要学习了1.如何a题,如何用贪心思想去a题在做题目的过程中感悟如何把题目中的有用的信息总结出规律来,然后从数据中找到可以操作的点,将其改写成可以运行的程序,并对题目中的数据有“敏感”,有“直觉”,找到题目中需要被操作的数据,这是关键2.如何运用网上的资源来配合解题对于目前的我来说,做题的时候上网搜集资料是无法避免的,所以要在做题的过程中不断地尝试,如果真的解决不了,没有思路,就去csdn。但是这是有前提的,就是要在找到题解后,将题解手打下来,在后面做出注释,要有更高的要求。对自己会、并且自己独
2021-03-20 23:42:26 75
原创 初识并查集(写给自己看的记录)
本来在a代码,但是B题用自己的方式a了好几次a不出来,然后就去网上搜索,得到了一个代码,放入vj里面ac了,于是进行研究,发现了一段看不懂的代码int find(int x)//找代表值{ if(x==f[x]) return x; return f[x]=find(f[x]);}很明显,一个递归代码,但是不知道起到什么作用,于是csdn了一下并查集,一种特殊的数据结构(它的逻辑结构本质也是一颗“树”,有唯一的根节点,任意数的子节点),它的特殊在于它只定义了两种数据操作(查找和合并)。这是
2021-03-20 12:44:51 122
原创 算法复杂度
1.时间复杂度1/是算法需要执行基本运算的次数所处的等级。2/时间复杂度是评判算法时间效率的有效标准。3/加减乘除为单次复杂度增长乘法除法会升降复杂度的幂4/高等级的幂次会覆盖低等级的幂次。O(3n2+n+2)可近似看为O(cn2)5/时间复杂度常数有时会组合出现有时表示算法消耗的时间不随规模的增长而增长。对于OJ系统来说,一秒能承受的运算次数大概是107-108。2.空间复杂度与时间复杂度表示方法相同,但表示的是消耗的最大数据空间。若消耗的最大数据空间是一个二维数组,那该程序的空间复
2021-03-16 10:40:30 372
原创 3/13一周知识总结
3月13日(第二周学习总结)一、所学知识1.c++stl及STL简单应用stl中的很多特殊的数据结构可以让程序开发者更加灵活的使用数据。(1)栈FILO栈结构可以让数据倒置,可以用来转化进制等(有待学习)头文件: #include <stack>``定义:stack<data_type> stack_name; 如:stack <int> s;操作: empty() -- 返回bool型,表示栈内是否为空 (s.empty() ) size() --
2021-03-13 19:19:28 215
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人