第15届蓝桥杯java-c组省赛真题

目录

一.拼正方形

1.题目

2.思路

3.代码

二.劲舞团

1.题目

2.思路

3.代码

三.数组诗意

1.题目

2.思路

3.代码

四.封闭图形个数

1.题目

2.思路

3.代码

五.吊坠

1.题目

六.商品库存管理

1.题目

2.思路

3.代码

七.挖矿

1.题目

2.思路

3.代码

八.回文字符串

1.题目

2.思路

3.代码


一.拼正方形

1.题目

2.思路

首先把1x1的方块转换为2x2的方块,然后算出所有的2x2的方块,只需要对这个值求根即可,因为数据过大,剩余的几个方块可以忽略不计,最后乘以2即可(因为方块边长为2)

3.代码

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println(2717561*2);
        scan.close();
    }
}

二.劲舞团

1.题目

2.思路

暴力枚举搜索即可,稍微有点麻烦的是数据处理,用一个二维的字符串数组来存储每条记录,在字符相等的前提下,找出时间相差1ms的连续数据的即可,需要注意的是k次正确敲击是k次连击,所以最后的结果需要加1

3.代码

public class text17 {
    public static void main(String[] args) {
        String[][] s = new String[10000][3];
        Scanner scan = new Scanner(System.in);
        int i = 0;
        while(scan.hasNextLine()){
            String p = scan.nextLine();
            if(p.isEmpty()) break;
            s[i++] = p.split(" ");
        }
        int max = 0;
        int sum = 0;
        for(int j = 1;j<2000;j++)
        {
            long tmp = Long.valueOf(s[j-1][2]);
            if(s[j][0].equals(s[j][1]))
            {
                long temp = Long.valueOf(s[j][2]);
                if(temp-tmp<=1000L)
                {
                    sum++;
                    max = Math.max(sum,max);//这里的max实际上是k-1次连击
                    continue;
                }
            }
            sum = 0;
        }
        System.out.println(max+1);
        scan.close();
    }
}

三.数组诗意

1.题目

2.思路

就是一道思维数学题,只有能找出规律就能写出来,找不到规律暴力求解只能通过30%,向这种大数据范围的数学题一般都有规律,我们先把满足题目要求的解小范围输出看看有没有什么规律,像这道题输出1000以内满足条件的数据就可以看出来只有是2的整数次幂的数字都不满足连续整数相加相等这个条件,所以只需要判断给的数据有多少个是2的整数次幂就可以

注:这里运用到了位运算,因为2的整数次幂的2进制表示只有一个1,x&(x-1)==0就是符合2的整数次幂的条件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值