- 博客(61)
- 收藏
- 关注
原创 java类与对象:static知识
static: 1.对类中成员以及方法的定义 2.静态代码块与匿名代码块 3.静态进口包 //static public class Student{ private static int age; //静态变量 private double score; //非静态变量 public void run(){ System.out.println("run"); } public static void go(){ Sy
2021-09-26 18:07:18
296
1
原创 java类与对象:类型转换
public class Work{ public static void main(String args[]){ //父类子类的类型转换 //1.子类转化为父类(向上转型) //2.父类转化为子类(向下转型) Person student1 = new Student(); //子类对象可直接转换为父类类型(父类引用指向子类对象),也就是向上转型
2021-09-26 17:19:46
474
原创 java类与对象:多态
public class Person{ public void run(){ System.out.println("run"); } } public class Student extends Person{ @Override public void run() { System.out.println("son"); } public void eat(){ System.out.println("
2021-09-26 11:52:17
211
原创 数据结构——链表基本操作
//链表 #include<iostream> using namespace std; #define DataType int //结点结构体定义 struct ListNode { DataType data; ListNode *next; }; /* 1.数据域:要存储的数据 2.指针域:指向后一结点的地址 */ //结点创建 ListNode* ListCreateNode(DataType data) { ListNode* node = (ListNode*
2021-09-25 19:57:59
356
原创 数据结构:顺序表基础实现
//顺序表 #include<iostream> using namespace std; //数据结构定义:数组类型、容量、长度 #define MAXN 1024 #define DateType int struct SeqList { DateType data[MAXN]; int length; }; //索引接口:返回下标为i的元素 DateType SeqListIndex(struct SeqList *sq, int i) { if (i < 0 |
2021-09-23 23:25:41
222
原创 java类与对象:方法重写
1.成员函数是静态: //重写都是方法的重写,跟属性无关 public class B { public static void print(){ System.out.println("b.test"); } } public class A extends B{ public static void print(){ System.out.println("a.test"); } } public class Work {
2021-09-22 23:21:47
201
原创 java面向对象:super
package OOP; //基类/父类 派生类/子类 //子类继承了父类,就会拥有父类的全部方法! //在Java中,所有的类,都默认直接或者间接继承Object public class Person { protected String name = "Person"; public void print(){ System.out.println("Person"); } } package OOP; public class Student e
2021-09-15 19:57:52
109
原创 java面向对象:封装
package OOP; public class Student { //private:私有 private String name; private int id; private char sex; //提供一些可以操作这些属性的方法 //提供一些public的get、set方法 //get:获得这些数据 public String getName(){ return name; //retur
2021-09-15 18:10:49
106
原创 java类与对象:简单回顾
package OOP; //一个项目应该只有一个main方法 public class Application { public static void main(String[] args) { /* 1.类与对象理解: 类是一个抽象性质的模板,对象是一个具体的实例 2.方法 定义、调用! 3.对应的引用 引用类型 非八大基本类
2021-09-15 17:49:43
103
原创 java面向对象:构造器
package OOP; public class Person { //一个类即使什么都不写,也会存在一个方法 //显式定义构造器 String name; /* 构造器作用 1.使用new关键字,本质是在调用构造器 2.用来初始化值 */ public Person(){}; //有参构造:一旦定义了有参构造,无参就必须定义 public Person(String name){ thi
2021-09-15 17:10:06
102
原创 java面向对象:类与对象的创建
面向对象本质:以类的方式组织代码,以对象的方式组织(封装)数据 package OOP; //学生类 public class Student { //属性:子段 String name; int age; //方法 public void study(){ System.out.println(name + "在学习"); //System.out.println(this.name + "在学习"); } }
2021-09-15 16:31:45
167
原创 java数组:多维数组
package array; public class Array04 { public static void main(String[] args) { //[4][2] /* 1,2 array[0] 2,3 array[1] 3,4 array[2] 4,5 array[3] */ int[][] array = {{1,2},{2,3},{3,4},{4,
2021-09-14 23:01:47
101
原创 java数组:数组应用
//普通 package array; public class Array02 { public static void main(String[] args) { int[] numbers = {1,2,3,4,5}; //打印全部数组元素 for (int i = 0; i < numbers.length; i++) { System.out.println(numbers[i]); }.
2021-09-14 21:23:05
160
原创 java数组:数组的声明和创建
package array; 数组的声明和创建 public class Array { public static void main(String[] args){ //变量类型 变量名 = 变量值 int[] numbers = new int[5]; numbers[0] = 1; numbers[1] = 2; numbers[2] = 3; numbers[3] = 4;
2021-09-14 20:19:48
97
原创 java方法:可变参数
//可变参数 //本质上提供了一个数组 package method; import java.util.Scanner; public class Demo03 { public static void main(String[] args){ Demo03 demo03 = new Demo03(); demo03.printMax(); demo03.printMax(2.0,3.0); demo03.printMax(2,3.
2021-09-14 19:18:13
101
原创 java流程控制:打印三角形
package struct; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); //思想:直接打印一个三角形很难,考虑打印空白部分,利用空白部分做文章 //打印五行的三角形 for(int i = 1;i &
2021-09-14 17:05:18
136
原创 java流程控制:九九乘法表
package struct; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); //类似于开发程序的思想:大事化小,小事化无 /** * 1.我们先打印第一列 * 2.我们
2021-09-14 16:43:30
167
原创 java流程控制:选择结构
//if package struct; import java.util.Scanner; public class ifdemo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入一个内容"); String str = scanner.nextLine(); /.
2021-09-13 23:09:21
101
原创 java流程控制:Scanner
//Scanner基础用法 package Scanner; import java.util.Scanner; public class Test0{ public static void main(String[] args) { //创建一个扫描器对象,用于接收键盘数据 Scanner scanner = new Scanner(System.in); System.out.println("请输入字符串"); Str.
2021-09-13 22:36:30
163
原创 java基础:逻辑运算符、位运算符、三元运算符
package base; public class Practice{ public static void main(String[] args) { //逻辑运算符 //与(and) 或(or) 非(取反) boolean a = true; boolean b = false; System.out.println(a && b); System.out.printl
2021-09-13 21:15:27
317
2
原创 java基础:变量及其作用域
//变量类型:类变量、实例变量、局部变量 public class Practice { //实例变量:从属于对象,如果不自行初始化,默认值 0 0.0 //布尔值默认为false //除了基本类型,其余都是null String name; int age; //类变量 static 可以不自行初始化,此性质同实例变量相同 //能够直接被调用 static double salary1 = 2500; static...
2021-09-12 23:55:28
160
原创 java基础:类型转换
public class practice { public static void main(String[] args) { //类型转换 //byte<short<char<int<long<float<double int i1 = 128; //高等级向低等级转换需要强制类型转换 //强制转换 (类型)变量名 高————低 byte i2 = (
2021-09-11 23:02:06
218
1
原创 java基础:基本数据类型及其拓展
public class demo1 { public static void main(String[] args) { //学习任务1:八大基本数据类型 //整数 int num1 = 10; //最常用 byte num2 = 127; short num3 =20; long num4 = 30l; //Long类型要在数字后面+L //小数:浮点数 f
2021-09-11 20:18:25
155
原创 背包问题学习8——poj2184——01背包变形
题目链接 1.思想转换 对于每头牛,要么选要么不选,有点类似于01背包,但是又有两个参数:智力值和幽默值,我们设dp[i]为智力值为i时对应的幽默值最大,最终选择完后能够得到最大的幽默值, ...
2021-05-17 10:30:10
159
1
原创 背包问题学习7——poj3181——高精度大数处理
题目链接 数据超过范围时的处理方法 #include<iostream> using namespace std; #define ll long long const ll inf=1e18; int main() { int n,k; while(cin>>n>>k){ ll dp[1005]={0},a[1005]={0}; dp[0]=1; for(int i=1;i<=k;i++){
2021-05-17 09:28:34
184
原创 背包问题学习6——poj——1787——记录路径
记录路径的代码书写注意点 1.因为是记录路径,所以要一个一个的背包进行更新,不能使用二进制代码优化 2.主要代码部分 if (dp[j - v[i]] + 1 > dp[j] && dp[j - v[i]] && used[j - v[i]] < num[i]) { dp[j] = dp[j - v[i]] + 1; used[j] = used[j -
2021-05-15 22:40:53
432
原创 背包问题学习5——循环细节——poj2163
题目链接 1.循环细节 写出相应代码后,如果循环明显会超时,则考虑优化 可能的优化角度 (1)代码本身能够优化:比如背包的二进制优化,即是对代码本身进行优化 (2)题目条件进行优化:比如说这个题,本金和固定bond部分都是1000的倍数,从而对循环量进行优化 对第二条也要警惕些,从第二条感觉到题目的输入部分对数据量的描述也要警惕了(能够优化循环量) 2.题目代码 #include<iostream> #include<cstdio> #include<cstring> u
2021-05-12 22:20:10
185
1
原创 背包问题学习4——上界确定(鸽笼原理)、二进制代码优化放进循环中——poj3260(补充理解)
题目链接 1.二进制代码优化放进循环中的代码 for (i = 1; i <= n; i++) { for (k = 1; k <= num[i]; k *= 2) { for (j = vol; j >= k * val[i]; j--) { dp[j] = min(dp[j], dp[j - k * val[i]] +
2021-05-12 00:49:23
214
4
原创 背包学习总结////////////省赛总结
本次参加省赛,感觉还是自己实力很薄弱,比如对签到题G,保留位数,虽说是很基础的题目,但换我做绝对做不出来,因此,自己的基础知识就有很大的漏洞。 同时,在答H题(类01背包)时,尽管思路是自己想的,也完全正确,同时也是自己在最后调出了代码,但还是有很多细节点是另外的小伙伴考虑到的,比如值转换处理我就没考虑到,虽说在区间dp中有类似处理,但没考虑到就很可惜,还是自己做题少,需要多练。 尽管在最后出了三道题,可惜罚时上差的比较远,后两道题都是在封榜时出的,很可惜,感觉自己的能力也差很多,比如读英语速度,一些特殊算
2021-05-10 13:39:33
234
3
原创 背包问题学习3——dp状态覆盖
poj1276/作业题O 做题时漏掉的点:dp状态更新覆盖掉了之前的状态 反思点:降维时要考虑之前的状态是否会被覆盖掉 #include <iostream> #include <stdio.h> #include <algorithm> #include <stdlib.h> #include<vector> #define N 10 #define maxn 10010 #define maxnn 100010 using namespace
2021-05-07 21:30:32
195
1
原创 背包问题学习2——hdu1059——思维转换、二进制优化
题目链接 1.思维转换 两个人分的石子重量值相同,等效成一个人分得一半的石子值,瞬间出来了背包问题模板 也就是说有相同量要归到最小规模——便于表示、出思路 2.二进制优化代码模板 int j = 1; for (int i = 1; i <= N; i++) { int temp = 1; while (a[i] > temp) { c[j++] = temp
2021-05-06 23:18:18
227
1
原创 Same Differences——STL容器中的unordered_map学习
题目链接 #include <iostream> #include <string> #include <unordered_map> #include <algorithm> using namespace std; #define ll long long //1.开ll,不然会WA unordered_map<ll, ll> vis; //2.假定这里写int,int,后
2021-05-06 12:10:49
148
原创 浮点数转换成整型数保留精度——UVA147——dollars
题目: New Zealand currency consists of $100, $50, $20, $10, and $5 notes and $2, $1, 50c, 20c, 10c and 5c coins. Write a program that will determine, for any given amount, in how many ways that amount may be made up. Changing the order of listing does not in
2021-05-05 22:34:03
259
原创 背包问题学习1——去除dp后效性——hdu3466——Proud Merchants
作业题E/hdu3466 #include<algorithm> #include<iostream> #include<vector> using namespace std; const int maxn = 5001; int n, m; int dp[maxn]; struct xiao { int pi, qi, vi; }a[maxn]; bool cmp(xiao x, xiao y) { return x.pi - x.qi > y
2021-05-05 09:42:46
302
原创 Gym_102220_B_Balanced Diet(动态数组+前缀数组)
这个题在比赛时出思路了,可惜自己没有想到用动态数组减少循环量,用普通数组双重循环会导致超时,因此特意写此篇博客,以此来熟悉动态数组 #include <map> #include <vector> #include <string> #include <iostream> #include<algorithm> using namespace std; #define ll long long #define maxn 100010 vecto
2021-05-04 08:50:58
351
原创 第八周学习总结——区间dp的学习
一、本周学习了区间dp,通过写反思的学习方法获得了比之前更高效的学习效率,我也发现这个方法对我来讲真的蛮受用的,以下是我本周所做的区间dp题目的反思整理的网页链接 区间dp学习1——回文串——做题反思(愣着干嘛,点我啊) 区间dp学习2——打表、四边形优化区间枚举(四边形区间优化)(愣着干嘛,点我啊) 区间dp学习3——括号匹配 ——做题反思(愣着干嘛,点我啊) 区间dp学习4——poj 1651 Multiplication Puzzle——题后反思(愣着干嘛,点我啊) 区间dp学习5——hdu 5115
2021-04-25 23:29:46
904
4
原创 区间dp学习5——hdu 5115——Dire Wolf——做题反思
这是原题链接(愣着干嘛,不知道题就点我呀) 这个题令我对区间dp有了新的理解,很满足能够在做题慢的情况下能够对题目所涉及的知识最大程度掌握 前面的分析过程我学到了很多,还有一个学习到的点是边界区间枚举,这是区间dp第二种表达方式经常需要处理的点 对应的网上代码(主要实现部分) memset(dp,INF,sizeof(dp)); for(int i=1;i<=n;i++) dp[i][i]=a[i]+b[i-1]+b[i+1];///区间长度为1的时候的情况
2021-04-21 23:15:58
246
原创 区间dp学习4——poj 1651 Multiplication Puzzle——题后反思
在做这个题时自己对区间dp已经有一定的熟练度了,只不过欠缺了一个思维,这个题为我提供了一个补充 这题又学到了一个思维:简化可能性 也就是说,当你分类时,顺着分可能性很多的情况下,倒着分,直接去考虑最后一步 比如:看我的思考(模拟)过程(错误的) 思路修正: 代码如下: #include<iostream> #include<cstring> #include<algorithm> #include<iomanip> using namespace std;
2021-04-20 14:49:37
236
2
原创 区间dp学习3——括号匹配 ——做题反思
在dp这里最重要的是思考过程,代码不细写了,思考有了代码自然有的 #include<iostream> #include<cstring> #include<algorithm> using namespace std; const int N = 200; char a[N]; int dp[N][N]; int solve(); int main() { while (cin >> a + 1) { if (a[1] == 'e' &&a.
2021-04-20 12:58:47
179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅