Java实现 第十一届 蓝桥杯 (本科组)省内模拟赛

这篇博客分享了作者参加第十一届蓝桥杯省内模拟赛的解题经验,涉及Java编程。文章涵盖了一系列算法题目,包括计算机存储的字节数计算、合法括号序列、无向连通图最少边数、字母重新排列、凯撒密码加密、反倍数、正整数摆动序列、螺旋矩阵、植树问题和户户通电的求解策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有错误的或者有问题的欢迎评论

计算机存储中有多少字节
合法括号序列
无向连通图最少包含多少条边
字母重新排列
凯撒密码加密
反倍数
正整数的摆动序列
螺旋矩阵
小明植树
户户通电

计算机存储中有多少字节

题目
问题描述

在计算机存储中,12.5MB是多少字节?

答案提交

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

这是真的送分题

12.5*1024(转换成KB)*1024(转换成B)=13,107,200

在这里插入图片描述

合法括号序列

题目
问题描述

由1对括号,可以组成一种合法括号序列:()。
由2对括号,可以组成两种合法括号序列:()()、(())。
由4对括号组成的合法括号序列一共有多少种?

答案提交

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

package 省模拟赛;

public class 合法括号有多少种 {
   		//14种
	public static int count=0,n=4;
	public static void main(String[] args) {
   
		f(0,0);
		System.out.println(count);
	}
	public static void f(int left,int right){
   
		if(left==n  ){
   
			count++;
			return;
		}
		
		f(left+1,right);
		if(left>right){
   
			f(left,right+1);
		}
	}
}

无向连通图最少包含多少条边

题目
问题描述

一个包含有2019个结点的无向连通图,最少包含多少条边?

答案提交

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

有来n个顶点的无向连通图最多有n(n-1)/2条边,最少有n-1条边。

详细解释

字母重新排列

题目
问题描述

将LANQIAO中的字母重新排列,可以得到不同的单词,如LANQIAO、AAILNOQ等,注意这7个字母都要被用上,单词不一定有具体的英文意义。
  请问,总共能排列如多少个不同的单词。

答案提交

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

异常喜欢这种全排列(不需要求出来每种排列的情况,它只需要得数)(●ˇ∀ˇ●)

全排列的个数就是
长度(长度-1)*(长度-2)…………1

也就是7 * 6 * 5 * 4 * 3 * 2 * 1的结果

在这里插入图片描述

裘德玛得,这里有一个重复的A所以我们还要除一个二,结果是( 2520 )全都是坑
在这里插入图片描述

或者直接上全排列代码

package 省模拟赛;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;

public class 字母重新排列 {
   
	public static int count = 0;
	public static ArrayList<Integer> list = new ArrayList<Integer>();
	public static Set<String> set = new HashSet<String>();
	static String[] strs={
   "L","A","N","Q","I","A","O"};
	public static void main(String[] args) {
   
		f();
		System.out.println(set.size());
	}

	public static void f() {
   
		if (list.size() >= 7) {
    
			StringBuilder s=new StringBuilder("");;
			for (int i = 0; i <=6; i++) {
   
				s.append(strs[list.get(i)-1]);
			}
			set.add(s.toString());
			return;
		}
		for (int i = 1; i <=7 ; i++) {
   
			if (!list.contains(i)) {
   
				list.add(i);
				f();
				list.remove(list.size() - 1);
			}
		}
	}

}

凯撒密码加密

题目
问题描述

给定一个单词,请使用凯撒密码将这个单词加密。
  凯撒密码是一种替换加密的技术,单词中的所有字母都在字母表上向后偏移3位后被替换成密文。即a变为d,b变为e,…,w变为z,x变为a,y变为b,z变为c。
  例如,lanqiao会变成odqtldr。

输入格式

输入一行,包含一个单词,单词中只包含小写英文字母。

输出格式

输出一行,表示加密后的密文。

样例输入

lanqiao

样例输出

odqtldr

评测用例规模与约定

对于所有评测用例,单词中的字母个数不超过100。

PS:
充分利用JDK,虽然看起来多,其实写起来方便,方法都有提示的
只需要对xyz这三个做特殊处理就可以了,记得大小写都做处理,

package 省模拟赛;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

public class 凯撒密码 {
   
	public static void main(String[] args) throws IOException {
   
//		Scanner sc = new Scanner(System.in);
//		String s=sc.next();
		String s=(new BufferedReader(new InputStreamReader(System.in))
评论 70
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值