笔记
猪猪成
低头赶路,敬事如仪。
展开
-
Java Objects工具类的学习
当我们遇到一些类对象是null空指针时,我们代码又要调用类方法,就会出现错误,此时我们一般的解决方法就是用if-else结构判断是不是空指针,然而我们用Objects工具类解决这个问题更为简单。5.如果重写了 比较属性值 所以这边a 和 c的属性值一样 但地址值不一样 比较的结果依旧是false。1.equals方法的底层会判断里面的第一个类是否有null 如果有一个null 直接返回false。3.此时第一个类a是persons类型,所以最终还是会调用persons中的equals方法。原创 2022-11-14 18:27:30 · 607 阅读 · 0 评论 -
Java Object 父类的学习 及Object的clone方法的浅谈深拷贝和浅拷贝
浅拷贝:不管对象内部的树形是基本数据类型还是引用数据类型,全部拷贝过来、深拷贝:基本数据类型拷贝过来 字符串服用 引用数据类型重新创建Object的克隆是浅克隆。原创 2022-11-12 18:55:59 · 491 阅读 · 0 评论 -
Java-API-Runtime类的学习
注: 要用Runtime类自带的静态方法 Runtime.getRuntime() 获取当前系统的运行环境对象 因为JVM只有一个运行环境。二、方法的使用代码演示。原创 2022-11-08 20:16:48 · 292 阅读 · 0 评论 -
Java-API-System类的学习 常用方法的介绍
java 通常以1970年1月1日为时间起点,许多计算都以这个时间开始。4.因为引用数据类型copy的实际上是地址值 所以源数组发生改变 目的地数组也发生改变。2.在拷贝的时候要考虑数组的长度,如果超出范围也会报错。那么两者的类型必须保持一致 否则会报错。1.如果数组源数组和目的地数组都是。3.如果数组源数组和目的地数组都是。那么子类类型也可以赋值给父类类型。原创 2022-11-07 23:09:33 · 152 阅读 · 0 评论 -
最长公共子序列【LCS】(动态规划)
LIS(Longest Increasing Subsequence)最长上升子序列一个数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, …, aN),我们可以得到一些上升的子序列(ai1, ai2, …, aiK),这里1 <= i1 < i2 < … < iK <= N。比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些上升子序列,如(1, 7), (3, ..原创 2021-11-05 20:13:49 · 103 阅读 · 0 评论 -
最长上升子序列【LIS】<动态规划>
【题目描述】给定N个数,求这N个数的最长上升子序列的长度。【样例输入】72 5 3 4 1 7 6【样例输出】4代码:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;#define Max 1010//最长上升序列int a[Max];int maxlen[Max];int原创 2021-11-05 19:11:51 · 80 阅读 · 0 评论 -
数字三角形<动态规划>(利用递推 ) 超简洁的做法
问题描述问题:给定一个由n行数字组成的数字三角形,如下图所示:试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大(每一步只能从一个数走到下一层上和它最近的左边的数或者右边的数)。输入格式: 第一行是数字三角形的行数,接下来 n 行是数字三角形中的数字。输出格式: 最大总和(整数)样例输入573 88 1 02 7 4 44 5 2 6 5样例输出30#include<iostream>#include<cstd.原创 2021-11-05 18:55:05 · 266 阅读 · 0 评论 -
快速排序<分治>
#include<iostream>using namespace std;//快速排序 复杂度 O(n*logn) //但只指一般条件(运气好的时候) 就是k a[0]要在数组中比较中间的位置//运气不好的时候 就是一个数组比较有序的时候 复杂度为n*n//但我们可以手动的随机打乱 但也占复杂度void swap(int &a,int &b)//交换数值的函数{ int tmp=a; a=b; b=tmp; return ;}v.原创 2021-11-04 21:22:28 · 67 阅读 · 0 评论 -
排序法·归并排序
#include<iostream>using namespace std;int a[10]= {13,27,19,2,8,12,2,8,30,39};int b[10];//归并排序void Merge(int a[],int s,int m,int e,int tmp[]){ int pb=0; int p1=s,p2=m+1; //拆分成两个数组进行归并 while(p1<=m&&p2<=e) { .原创 2021-11-04 14:08:08 · 66 阅读 · 0 评论 -
表达式求和<递归>
上代码!#include <cstdio>#include <cstring>#include<iostream>using namespace std;int factor_value();int term_value();int expression_value();int main(){ cout<<expression_value()<<endl; return 0;}int expression_原创 2021-11-04 13:46:38 · 236 阅读 · 0 评论 -
POJ1222熄灯问题<北大OJ>(位运算)
AC代码如下:#include <cstdio>#include <cstring>#include<iostream>using namespace std;char oriLights[5];char light[5];char result[5];int getbit(char c,int i)//取出字节{ return(c>>i)&1;}void setbit(char & c,int...原创 2021-11-03 23:14:49 · 236 阅读 · 1 评论 -
洛谷P1024[NOIP2001]一元三次方程(二分)
AC代码如下:#include<bits/stdc++.h>using namespace std;//一元三次方程double a,b,c,d;//全局变量 方便传进jisuan函数使用double jisuan(double x){ return a*x*x*x+b*x*x+c*x+d;}int main(){ cin>>a>>b>>c>>d; int sum; ...原创 2021-10-30 11:24:22 · 160 阅读 · 0 评论 -
洛谷P2678[NOIP2015]跳石头(二分算法)
题目:AC通过图如下简短的AC代码如下:#include<iostream>#include<cstdio>using namespace std;int main(){ int l, n, m; cin >> l >> n >> m; int arr[50001]; int now, left, right, mid; left = 0; right = l; //给2位置变量初始化数...原创 2021-10-30 10:24:33 · 957 阅读 · 0 评论 -
DHU.OJ乒乓球<字符串>
AC代码:#include<iostream>#include<cstdio>using namespace std;int a[65000];void tongji(int x);int len;int main(){ char c; while(cin>>c) { switch (c) { case 'W': a[len++] = ...原创 2021-10-29 11:35:40 · 219 阅读 · 0 评论 -
不同单词统计<字符串>
AC代码:#include<cstdio>#include<cstring>#include<iostream>#include<cmath>#include<string>#include<queue>#include<vector>using namespace std;int main(){ char a[105]; gets(a); int sum=0; fo...原创 2021-10-28 23:09:10 · 74 阅读 · 0 评论 -
字符串编辑<字符串>
AC代码如下:#include<bits/stdc++.h>using namespace std;int main(){ // freopen("input.txt", "r", stdin); string str; getline(cin, str); char s, a; cin >> s >> a; int length = str.size(); int i, j,...原创 2021-10-28 23:07:14 · 200 阅读 · 0 评论 -
洗牌<字符串>
#include<cstdio>#include<cstring>#include<iostream>#include<cmath>#include<string>#include<queue>#include<vector>using namespace std;int main(){ string input; int poker[54]; int n=0...原创 2021-10-28 00:13:08 · 117 阅读 · 0 评论 -
表达式求值<字符串>
AC代码:#include<cstdio>#include<cstring>#include<iostream>#include<cmath>#include<string>using namespace std;int main(){ char a[200]; while(gets(a)) { int sum=0; int flag=0; ...原创 2021-10-26 23:44:32 · 99 阅读 · 0 评论 -
字符串统计<字符串>
AC代码:#include<cstdio>#include<cstring>#include<iostream>#include<cmath>using namespace std;int judge(char tmp[],char a[]);int main(){ int l; char a[100]; char b[100]; cin>>l; getchar(); g...原创 2021-10-26 22:19:45 · 96 阅读 · 0 评论 -
My brother‘s homework<字符串>
题目:AC代码 如下#include<cstdio>#include<cstring>#include<iostream>#include<cmath>#include<string>using namespace std;int main(){ int i = 0, j, count = 0; int a[100], b[100], c[100]; char d[100]; while(scanf("%d.原创 2021-10-26 22:18:17 · 66 阅读 · 0 评论 -
字符串压缩<字符串>
AC代码如下!#include<cstdio>#include<string>#include<iostream>#include<cmath>using namespace std;string yasuo(string str);int main(){ string str; for(;cin>>str;){ for(int i=0;i<str.length();i++) ...原创 2021-10-25 16:19:29 · 75 阅读 · 0 评论 -
移动距离<二维数组>
AC代码#include<cstdio>#include<cstring>#include<iostream>#include <cmath>using namespace std;int w, m, n;int main(){ scanf("%d %d %d", &w, &m, &n); m--;//减1后确保算出来的行数 准确 否则当w等于6 m等于6 m1等于1但其实m在第...原创 2021-10-25 15:25:44 · 122 阅读 · 0 评论 -
【洛谷】P173】[noi1999]生日蛋糕
AC代码如下#include<cstdio>#include<cstring>#include<iostream>#include<cmath>using namespace std;int r[30],h[30],minn=211310532,n,m;void dfs(int x,int y,int k,int z)//步骤 V 表面积 层数{ if(y<0) return;//体积已经大于n 剪枝 if(x...原创 2021-10-24 22:13:22 · 162 阅读 · 0 评论 -
【洛谷P1219】八皇后
题目描述一个如下的6 \times 66×6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列2\ 4\ 6\ 1\ 3\ 5246135来描述,第ii个数字表示在第ii行的相应位置有一个棋子,如下:行号1\ 2\ 3\ 4\ 5\ 6123456列号2\ 4\ 6\ 1\ 3\ 5246135这只是棋子放置的一个解。请编一个程序找出所有棋...原创 2021-10-24 12:05:42 · 80 阅读 · 0 评论 -
<洛谷>P1378 油滴拓展
题目描述在一个长方形框子里,最多有NN个相异的点,在其中任何一个点上放一个很小的油滴,那么这个油滴会一直扩展,直到接触到其他油滴或者框子的边界。必须等一个油滴扩展完毕才能放置下一个油滴。那么应该按照怎样的顺序在这NN个点上放置油滴,才能使放置完毕后所有油滴占据的总体积最大呢?(不同的油滴不会相互融合)注:圆的面积公式V = \pi r^2V=πr2,其中rr为圆的半径。输入格式第一行,一个整数NN。第二行,四个整数x, y, x', y'x,y,x′,y′,表示长方形边...原创 2021-10-23 17:09:36 · 260 阅读 · 0 评论 -
棋盘多项式·八皇后改八车<递归>
问题描述 : 八皇后问题是在棋盘上放皇后,互相不攻击,求方案。变换一下棋子,还可以有八车问题,八马问题,八兵问题,八王问题,注意别念反。在这道题里,棋子换成车,同时棋盘也得换,确切说,是进行一些改造。比如现在有一张n*n的棋盘,我们在一些格子上抠几个洞,这些洞自然不能放棋子了,会漏下去的。另外,一个车本来能攻击和它的同行同列。现在,你想想,在攻击的过程中如果踩到一个洞,便会自取灭亡。故,车的攻击范围止于洞。 此题,给你棋盘的规模n,以及挖洞情况,求放k个车的方案数(k从0到最多可放车数)输入原创 2021-10-23 09:59:54 · 578 阅读 · 0 评论 -
八皇后·改<递归>
问题描述 :规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大。输入说明 :一个8*8的棋盘。数据规模和约定 棋盘上的数字范围0~99输出说明 :所能得到的最大数字和AC代码如下#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#inc..原创 2021-10-23 09:52:46 · 130 阅读 · 0 评论 -
两只塔姆沃斯牛<二维数组>
问题描述 :两只牛在森林里故意走丢了。农民John开始用他的专家技术追捕这两头牛。你的任务是模拟他们的行为(牛和John)。追击在10x10的平面网格内进行。一个格子可以是:一个障碍物, 两头牛(它们总在一起), 或者 农民John.两头牛和农民John可以在同一个格子内(当他们相遇时),但是他们都不能进入有障碍的格子。一个格子可以是:. 空地* 障碍物C 两头牛F 农民John这里有一个地图的例子:*...*...........*......*..原创 2021-10-21 16:42:24 · 155 阅读 · 0 评论 -
学生选拔<结构体>
问题描述 :多组测试数据。每组数据的第一行的数字n,m(1≤m,n≤1000)。n表示该班级有n个同学,m表示要选取每门课排名前m的学生。以下n行每行由一个名字,一个语文成绩,一个数学成绩,一个英语成绩组成,表示一个同学的信息。名字是一个由大小写字母组成的字符串,名字字符串最长长度为20,名字中间没有空格。每门课成绩是一个0到10000之间的整数。数据保证,在同一组测试数据中,任意两个同学同一门课程的分数一定不相同。说明:总共三门课,每门课录取前m个学生,则总共最多录取3*m个学生,但这原创 2021-10-20 13:38:39 · 500 阅读 · 0 评论 -
扑克牌<结构体>
问题描述:明明和他的三位同学在玩一种非常有趣的扑克牌游戏。在这个游戏中,一副牌的大小怪被除去,然后把剩下的52张牌随机发给4个人,这样每个人的手中就有13张牌。接下来的任务就是每个人把自己手中的牌按一定的顺序整理好。理牌的顺序如下:首先按牌的大小整理,牌的大小顺序为:A,K,Q,J,T(10),9,…,2,如果牌的大小相等,则按如下的花色顺序整理:黑桃(S),红心(H),方块(D),草花(C)。例如有一个人手中拿到的牌如下:ST CQ S8 D8 HQ D2 H3 HK H9 H2原创 2021-10-18 14:42:12 · 478 阅读 · 0 评论 -
回文平方数
问题描述 :回文数是指从左向右念和从右向左念都一样的数。如12321就是一个典型的回文数。 给定一个进制B(2=<B<=20进制),输出所有的大于等于1小于等于300且该数的平方用B进制表示时是回文数的数(该数本身不要求是回文数)。输入说明 :共一行,一个单独的整数B(B用十进制表示,比如18)。输出说明 :每行两个数字,第二个数是第一个数的平方,且第二个数是回文数。注意:输出时,这两个数都应该以B进制表示。在输出时,数字10到20分别以A到K代替。解题方法: 定原创 2021-10-17 14:22:50 · 670 阅读 · 0 评论 -
最少拦截系统<一维数组>
问题描述:某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能达到前一发的高度。某天,雷达捕捉到敌国的导弹来袭,如果系统数量太少,将导致有可能不能拦截所有的导弹。所以,根据雷达捕捉到的导弹高度,需要预先准备相应数量的拦截系统。比如导弹的高度依次为:5 3 4 2 4 1则一个拦截系统的第一发炮弹必须打到高度5的地方,第二发炮弹打到高度3的地方。但第三发炮弹打不到高度4的地方(因为每一发炮原创 2021-10-17 10:13:02 · 57 阅读 · 0 评论 -
序列<一维数组>
问题描述:明明的爸爸经常用做游戏的方法启发明明对数学的兴趣。有一次,明明爸爸准备了许多盒子和球,他要和明明做一个放球的游戏。游戏如下:要将k个小球依次装入到若干个盒子中去(可以使用的盒子数不限)。小球装入盒子的规则如下:1)第一个盒子不能为空。2)依次装入各个盒子的球数必须严格递增。例如:当k=8时,装入方法有1,2,5或1,3,4。3)装入的盒子数尽可能多。4)所有相邻盒子的球数之差的绝对值之和最小。如上例中:装入法1,2,5,则差的绝对值之和为(2-1)+(5-2...原创 2021-10-17 09:39:33 · 159 阅读 · 0 评论 -
错误票据<数组>
问题描述:某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的ID和重号的ID。假设断号不可能发生在最大和最小号。输入说明:要求程序首先输入一个整数N(N<100)表示后面数据行数。接着读入N行数据。每行数据长度不等,是用空格分开的若干个(不大于100个)正整数(不大原创 2021-10-16 23:12:10 · 85 阅读 · 0 评论 -
黑色星期五<数组>
问题描述:13号又是星期五是一个不寻常的日子吗? 13号在星期五比在其他日少吗?为了回答这个问题,写一个程序来计算在n年里13 日落在星期一,星期二......星期日的次数.这个测试从1900年1月1日到 1900+n-1年12月31日.n是一个非负数且不大于400.这里有一些你要知道的: 1900年1月1日是星期一. 4,6,11和9月有30天.其他月份除了2月都有31天.闰年2月有29天,平年2月有28天.输入说明:一个整数n(1<= n <= 400).输出说明:七个在一行原创 2021-10-16 15:27:55 · 156 阅读 · 0 评论 -
循环数组 <移动>
问题描述:编写程序,将一维数组中的元素向右循环移动N次。请定义函数,使得数组的元素能向右循环移动1位:最右边的元素移到最左边,其余元素往右移1位。输入说明:第一行整数n,表示数组大小为n第二行,n个数,表示数组中的n个元素。第三行,整数N,表示数组向右移动N次。输出说明:移动后的数组元素,每两个元素之间以一个空格分隔。行首与行尾无多余空格。解决方法:①按部就班 定义函数 挨个移动元素代码如下:#include <cstdio>#include.原创 2021-10-16 14:26:53 · 449 阅读 · 0 评论 -
求n天后的日期
实现驶入一个年 月 日 与一个天数n,输出n天后的日期的 局部函数#include <cstdio>#include <cmath>using namespace std;int mon[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};//定义数组储存月份int leap(int y){ if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) { ...原创 2021-10-14 20:39:11 · 367 阅读 · 0 评论 -
分拆素数和
用函数实现问题描述:把一个偶数拆成两个不同素数的和,有几种拆法呢?说明:比如10,可以拆成3+7和5+5以及7+3,但是3+7与7+3相同,只算一种,5+5由于两个素数相同,不计算在内。因此,10的拆法只有一种。输入说明:先输入一个T(不超过500),然后输入T个正的偶数,其值不会超过10000输出说明 :对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。AC代码如下:#include <cstdio>#include <原创 2021-10-16 13:46:39 · 279 阅读 · 0 评论 -
求N的倍数M都是各位0和1
定义一个函数 求倍数的函数 来实现算法#include <cstdio>#include <cmath>#include<iostream>using namespace std;void bei(int n);//定义函数int main(){ int n; while(scanf("%d",&n)!=EOF) { bei(n); if(cin.eof());//确保会每次都会...原创 2021-10-16 11:29:12 · 330 阅读 · 0 评论