蓝桥杯(3.6)

1221. 四平方和

java 复制代码
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		for(int i=0;i*i <= n;i++) {
			for(int j=i;i*i + j*j <= n;j++) {
				for(int k=j;i*i + j*j + k*k <= n;k++) {
					int t1 = n-i*i-j*j-k*k;
					int t2 = (int)Math.sqrt(t1);
					if(t1 >= k*k && t2*t2 == t1) {//加上t1 >= k*k
						System.out.println(i+" "+j+" "+k+" "+t2);
						return ;
					}
				}
			}
		}
	}
}
java 复制代码
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		List<int[]> list = new ArrayList<>();//1
		
		for(int c = 0;c*c<=n;c++) {
			for(int d=c;c*c+d*d<=n;d++) {
				list.add(new int[] {c*c+d*d,c,d});
			}
		}//2
		
		list.sort(new Comparator<int[]>() {
			public int compare(int[] o1, int[] o2) {
				if(o1[0]!=o2[0])
					return o1[0]-o2[0];
				if(o1[1]!=o2[1])
					return o1[1]-o2[1];
				return o1[2]-o2[2];
			};
		});//3
		
		for(int a=0;a*a<=n;a++) {
			for(int b=a;a*a+b*b<=n;b++) {
				int t = n-a*a-b*b;
				//二分
				int l = 0,r = list.size()-1;
				while(l<r) {
					int mid = (l+r)/2;
					if(list.get(mid)[0] >= t)	r = mid;
					else	l = mid+1;
				}
				//l或者r
				if(list.get(l)[0] == t) {
					int c = list.get(l)[1];
					int d = list.get(l)[2];
					System.out.println(a+" "+b+" "+c+" "+d);
					return ;
				}
			}
		}
		
	}
}
java 复制代码
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		Map<Integer,int[]> map = new HashMap<>();//1
		
		for(int c = 0;c*c<=n;c++) {
			for(int d=c;c*c+d*d<=n;d++) {
				Integer cd = c*c + d*d;
				if(map.get(cd) == null)
					map.put(cd,new int[] {c,d});
			}
		}//2
		
		for(int a=0;a*a<=n;a++) {
			for(int b=a;a*a+b*b<=n;b++) {
				Integer t = n-a*a-b*b;
				if(map.get(t) != null) {
					int c = map.get(t)[0];
					int d = map.get(t)[1];
					System.out.println(a+" "+b+" "+c+" "+d);
					return ;
				}
			}
		}
		
	}
}

795. 前缀和

java 复制代码
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();
		int[] res = new int[n+1];
		int[] a = new int[n+1];

		for(int i=1;i<=n;i++)
			res[i] = sc.nextInt();
		//求前缀和数组
		for(int i=1;i<=n;i++) {
			a[i] = a[i-1] + res[i];
		}
		
		while(m-- != 0) {
			int l = sc.nextInt();
			int r = sc.nextInt();
			System.out.println(a[r]-a[l-1]);
		}
	}
}

796. 子矩阵的和

java 复制代码
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();
		int q = sc.nextInt();
		int[][] a = new int[n+1][m+1];
		int[][] b = new int[n+1][m+1];
		
		for(int i=1;i<=n;i++)
			for(int j=1;j<=m;j++)
				a[i][j] = sc.nextInt();

		for(int i=1;i<=n;i++)
			for(int j=1;j<=m;j++)
				b[i][j] = b[i][j-1]+b[i-1][j]-b[i-1][j-1]+a[i][j];//初始化前缀和数组
		
		while(q-- != 0) {
			int x1 = sc.nextInt();
			int y1 = sc.nextInt();
			int x2 = sc.nextInt();
			int y2 = sc.nextInt();
			System.out.println(b[x2][y2]-b[x2][y1-1]-b[x1-1][y2]+b[x1-1][y1-1]);
		}
	}
}
相关推荐
XH华37 分钟前
备战蓝桥杯,第九章:结构体和类
学习·蓝桥杯
园小异1 小时前
2026年技术面试完全指南:从算法到系统设计的实战突破
算法·面试·职场和发展
Epiphany.5564 小时前
蓝桥杯备赛题目-----爆破
算法·职场和发展·蓝桥杯
YuTaoShao4 小时前
【LeetCode 每日一题】1653. 使字符串平衡的最少删除次数——(解法三)DP 空间优化
算法·leetcode·职场和发展
Ll13045252989 小时前
Leetcode二叉树part4
算法·leetcode·职场和发展
夏鹏今天学习了吗10 小时前
【LeetCode热题100(99/100)】柱状图中最大的矩形
算法·leetcode·职场和发展
_OP_CHEN12 小时前
【算法基础篇】(五十八)线性代数之高斯消元法从原理到实战:手撕模板 + 洛谷真题全解
线性代数·算法·蓝桥杯·c/c++·线性方程组·acm/icpc·高斯消元法
仰泳的熊猫12 小时前
题目1453:蓝桥杯历届试题-翻硬币
数据结构·c++·算法·蓝桥杯
零售ERP菜鸟1 天前
范式革命:从“信息化”到“数字化”的本质跃迁
大数据·人工智能·职场和发展·创业创新·学习方法·业界资讯
网络安全-杰克1 天前
2026面试自动化测试面试题【含答案】
自动化测试·软件测试·面试·职场和发展