自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 差分与前缀和

差分 当某一个数组要在很多不确定的区间,加上相同的一个数//读入原始数据 n,m,a输入n,mfor(int i=1;i<=n;i++){ 输入a[i]}//差分for(int i=1;i<=n;i++) b[i]=a[i]-a[i-1] //区间操作while(m--){ 输入l,r,value b[l]+value b[r+1]-value}//前缀和还原for(int i=1;i<n;i++)

2022-04-06 20:26:05 234

原创 动态规划理解

动态规划之线性dp代码:import java.util.Scanner;public class Main { static long[] arr=new long[300005]; static long[] dp=new long[300005];//dp数组表示当前位置的最大长度 static long res=0; public static void main(String[] args) { Scanner sc=new Scanner(System.in)

2022-04-06 11:32:35 223

原创 单调栈的理解

单调栈,顾名思义,一个单调递增或单调递减的栈,其关键在于满足入栈条件时的值这道题,便需要使用到单调栈,思想便是:从左往右开始入栈,第一个肯定为-1(读题先),然后下一个数判断是否小于前一个数:是 则该数左边第一比该数大的数为栈顶元素,不是 则移除栈顶元素后继续判断。往后的数照旧。import java.util.Scanner;import java.util.Stack;public class 百亿富翁 { static long[] arr=new long[700005];

2022-04-05 19:27:05 408

原创 并查集以及并查集的扩展域

并查集由一个数组和两个函数组成其中find()函数作用是找到该数的代表int find(int x) while(pre[x] != x) //如果x的上级不是自己(则说明找到的人不是教主) x = pre[x]; //x继续找他的上级 return x; }join()函数用来合并两个数static public void join(int x,int y){ int fx=find(x); int fy=find(y);

2022-04-02 15:56:03 527

原创 螺旋折线类型题,算步数

算红线的步数代码: Scanner scan = new Scanner(System.in); long x = scan.nextLong(); long y = scan.nextLong(); scan.close(); long max = Math.max(Math.abs(x),Math.abs(y)); long res = 0; if( x == ma..

2022-03-26 17:23:22 109

原创 容器queue

add(): 增加一个元索,如果队列已满,则抛出一个异常 remove():移除并返回队列头部的元素,如果队列为空,则抛出一个异常 element():返回队列头部的元素,如果队列为空,则抛出一个异常 offer():添加一个元素并返回 true,如果队列已满,则返回 false poll(): 移除并返问队列头部的元素,如果队列为空,则返回 null peek(): 返回队列头部的元素,如果队列为空,则返回 null put(): 添加一个元素, 如果队列满,则阻塞 take(): 移除并返

2022-03-25 10:04:13 58

原创 排序的方法总结

冒泡排序:import java.util.Scanner;import java.util.Stack;public class Main { static void BubbleSort(int arr[]) { int n=arr.length; for(int i = 0; i < n - 1; i++) { for(int j = 0; j < n - i - 1; j++) {

2022-03-25 09:37:54 48

原创 Acwing 2022年3月20日第一届全国高校联赛 第二题 农田灌溉

import java.util.ArrayList;import java.util.Collections;import java.util.Scanner;/** * @author songxh * @create 2022-03-20-19:23 */public class acwing农田灌溉 { static ArrayList<Integer> list2 = new ArrayList<>(); public static v.

2022-03-20 20:43:03 795

原创 Acwing 2022年3月20日第一届全国高校联赛 第一题 数圈圈

import java.math.BigInteger;import java.util.Scanner;/** * @author songxh * @create 2022-03-20-19:07 */public class acwing数圈圈 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); BigInteger bi = s.

2022-03-20 20:41:42 383

原创 组合型枚举的模板代码

public class 组合型枚举排列组合问题 { static int n; static int m; static ArrayList<Integer> list = new ArrayList<>(); public static void main(String[] args) { Scanner scanner = new Scanner(System.in); n=scanner.nextI.

2022-03-20 12:01:12 81

原创 超详细排列组合问题解法

import java.util.ArrayList;/** * 组合算法 * 本程序的思路是开一个数组,其下标表示1到m个数,数组元素的值为1表示其下标 * 代表的数被选中,为0则没选中。 * 首先初始化,将数组前n个元素置1,表示第一个组合为前n个数。 * 然后从左到右扫描数组元素值的“10”组合,找到第一个“10”组合后将其变为 * “01”组合,同时将其左边的所有“1”全部移动到数组的最左端。 * 当第一个“1”移动到数组的m-n的位置,即.

2022-03-15 11:39:28 984

原创 2022年 蓝桥杯 模拟赛 Java 第八题

import java.util.Scanner;/** * @author songxh * @create 2022-03-13-11:37 */public class 模拟赛08 { static int m,n,r,c; public static void main(String[] args) { Scanner scanner = new Scanner(System.in); n = scanner.nextInt();.

2022-03-13 18:33:26 1035

原创 迪杰斯特拉 算法求最短路径

public class zuiduanlujing { static int[][] G=new int[2050][2050]; //这数组记录从某点到某点的距离,数组中的两个值分 别是两点的位置 static final int INF=1000000000; //给定一个最大的值,赋值给每个点 public static void main(String[] args) {.

2022-02-28 18:06:35 89

原创 如何找出一个数的所有因子

Long n=2021041820210418L; //作为样例数据 int temp=0; //表示数组下标 long[] factor=new long[1000]; //该数组记录所有的因子 for (long i=1;i*i<=n;i++){ //i*i<=n确保i小于根号n,减少循环次数 if (n%i==0){ factor[temp]=i...

2022-02-28 15:17:33 670

原创 全排列方法,用递归

输入一个包含整数的数组,判断所有排列的方式public static void main(String[] args) { int [] arr={1,2,3}; f(arr,0); } private static void f(int[] arr, int k) { if (k==3){ print(arr);//此处为结束条件,此处出来的数据便是全排列的结果 } for (i

2021-12-16 21:58:28 43

原创 DFS经典类型

输入长和宽,如何输入对应的“.”、“#”、“@”,@的位置为起始点,只能走“.”,不能走#,求最长的距离import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util.Arrays;public class Mai

2021-12-16 21:50:24 61

原创 如何使用异或来解决Java算法问题

public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=Integer.parseInt(sc.nextLine()); ArrayList<Integer> list=new ArrayList<>(); for(int i=0;i<n;i++) { list.add(sc.nextInt()); } int num=...

2021-12-14 22:14:06 81

原创 求最大公约数

public static void main(String[] args) { Scanner sc=new Scanner(System.in); int a=sc.nextInt(); int b=sc.nextInt(); int max=a>b?a:b; int min=a<b?a:b; int res=0; if(max%min==0) { res=min; }else { int temp=0; while(m...

2021-12-14 21:40:27 70

原创 俩字符串,找相同

当题中给出两个字符串,让你找出是否包含时 Scanner sc=new Scanner(System.in); String shop=sc.nextLine(); String buy=sc.nextLine(); int []c=new int[128]; //ASCII码值有127个 for(int i=0;i<shop.length();i++) { int index=shop.charAt(i); //charAt找出来的是ASCII中的十

2021-12-14 15:42:51 170

原创 大小写字母的转换以及字符串去重

大写字母转小写字母toLowerCase();小写字母转大写字母toUpperCase();

2021-12-07 19:46:52 134

原创 保留小数n位的操作

int c1,c2;int result=(int)((c2-c1)*1.0/100+0.5);//四舍五入以上为将int类型的数采用四舍五入的方法来计算

2021-12-05 20:13:33 93

原创 科学计数法转正常格式

将一个以科学计数法表示的数转换成正常的表示方式public static void main(String[] args) { Scanner s=new Scanner(System.in); BigDecimal bd=s.nextBigDecimal(); System.out.print(bd.toPlainString());//着重记住此方法 }

2021-12-04 20:56:02 301

原创 进制转换方法

1、当需要将一个数从十进制转换成D(D>0)进制时 int num=123; int d=4; String result=Integer.toString(num, d);//将“123”转换成4进制2、当需要将一个D进制数转换成一个十进制数时int num=100010; //num为二进制int result=Integer.parseInt(num,2); //Integer.parseInt(s, radix),s为该数,radix为该数

2021-12-04 20:20:34 37

原创 重写sort方法的排序类型

import java.io.*;import java.util.*;class Node implements Comparable<Node>{ //此处Node便是重新定义排序 int a,b,c; //abc为参数 int sum; Node(int a,int b,int c){ //写构造器 this.a=a; this.b=b; this.c=c; sum=b+c; }.

2021-12-02 15:28:22 156

原创 比较快的找出【m,n】范围内的素数方法

//此方法灵感来自于别人的代码,我只是记录一下方便以后自己观看import java.util.Scanner;public class 数素数 { public static void main(String[] args) { Scanner s=new Scanner(System.in); int m=s.nextInt();// m,n分别表示范围 闭区间 int n=s.nextInt(); int times=0; for(int i=1;;i++) { .

2021-11-30 22:15:02 199

空空如也

空空如也

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

TA关注的人

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