蓝桥

javaB

·        1-3、结果填空

·        4-5、代码填空

·        6-7、结果填空

·        8-10、程序设计

 

七道小题,三道编程题,每道题分数呈递增

 

 B组算法上只要掌握搜索和二分就可以进国赛了

 

1. 填空题求解方式不限。

填空题基本上暴力都可以跑出来,有些题目代码实现复查手算简单的可以手算,有些与日期有关的题可以查windows自带的日历。总之,怎么方便怎么来。

2.程序填空题基本上全是递归,既然是递归,函数往往不会只有一个地方调用自身,找一下其他调用自身的语句,稍微推理一下就能得出正确答案。

3.编程题不要空着!尽量想出最优解,想不出来写暴力,暴力都写不出来就直接写个输入然后输出样例的结果。第一个测试数据一般都是样例,这样写,写了就有分!

 

 

前七道小题里面有两道代码填空,一般是挖一个程序递归的关键代码或者递归前后变量的赋值。

这种题肯定是要反复看代码,琢磨变量的含义和作用才能做对,

当然不包括有的人胡乱试试出来,不过这种概率极低,

不如静心想想程序来的踏实,这种代码填空一般分值稍高,但一般在第四题或者第五题,所以并不是特别难。

 

第四题之前的题目大多比较简单了,一般多层循环就可以了,可能有的必须用递归,有的递归或者普通循环都可以做出来。

第六第七题就技术含量高一些,一般人可能做不出来,没事,根据自己水平,不行就放弃,不一定非要抓这个分。

就是纯粹for循环加分析一点递归代码的水平

 

2017第八届

1. 购物单 

数据录入进行计算

8折是空格+八折替换空格+80

Excelvalue是因为有空格

word转表格后,替换空格

2. 纸牌三角形 

生成1-9数组

Int a[]=new int[9]

生成三边

Int b[]=new int[3]

镜像除2,旋转除3

暴力破解

1. public class 纸牌三角形 {  

2.     public static void main(String[] args) {  

3.         int count=0;  

4.         for(int a=1;a<10;a++){  

5.             for(int b=1;b<10;b++){  

6.                 if(a!=b)  

7.                 for(int c=1;c<10;c++){  

8.                     if(a!=b&&a!=c&&b!=c)  

9.                     for(int d=1;d<10;d++){  

10.                        if(a!=b&&a!=c&&b!=c&&a!=d&&b!=d&&c!=d)  

11.                        for(int e=1;e<10;e++){  

12.                            if(a!=b&&a!=c&&b!=c&&a!=d&&b!=d&&c!=d&&a!=e&&b!=e&&c!=e&&d!=e)  

13.                            for(int f=1;f<10;f++){  

14.                                if(a!=b&&a!=c&&b!=c&&a!=d&&b!=d&&c!=d&&a!=e&&b!=e&&c!=e&&d!=e&&a!=f&&b!=f&&c!=f&&d!=f&&e!=f)  

15.                                for(int g=1;g<10;g++){  

16.                                    if(a!=b&&a!=c&&b!=c&&a!=d&&b!=d&&c!=d&&a!=e&&b!=e&&c!=e&&d!=e&&a!=f&&b!=f&&c!=f&&d!=f&&e!=f&&a!=g&&b!=g&&c!=g&&d!=g&&e!=g&&f!=g)  

17.                                    for(int h=1;h<10;h++){  

18.                                        if(a!=b&&a!=c&&b!=c&&a!=d&&b!=d&&c!=d&&a!=e&&b!=e&&c!=e&&d!=e&&a!=f&&b!=f&&c!=f&&d!=f&&e!=f&&a!=g&&b!=g&&c!=g&&d!=g&&e!=g&&f!=g&&a!=h&&b!=h&&c!=h&&d!=h&&e!=h&&f!=h&&g!=h)  

19.                                        for(int i=1;i<10;i++){  

20.                                            if(a!=b&&a!=c&&b!=c&&a!=d&&b!=d&&c!=d&&a!=e&&b!=e&&c!=e&&d!=e&&a!=f&&b!=f&&c!=f&&d!=f&&e!=f&&a!=g&&b!=g&&c!=g&&d!=g&&e!=g&&f!=g&&a!=h&&b!=h&&c!=h&&d!=h&&e!=h&&f!=h&&g!=h&&a!=i&&b!=i&&c!=i&&d!=i&&e!=i&&f!=i&&g!=i&&h!=i)  

21.                                              if((a+b+c+d)==(a+e+f+g)&&(a+b+c+d)==(d+h+i+g))  

22.                                                  count++;  

23.                                                    

24.                                                  

25.                                        }  

26.                                    }  

27.                                }  

28.                            }  

29.                        }  

30.                    }  

31.                }  

32.            }  

33.        }  

34.        System.out.println(count/(3*2));  

35.    }    

36.}  

 


3. 承压计算 

把数字直接存入数组,直接复制在控制台,他们本来就是用空格隔开的,比较方便,直接复制粘贴

这样在数组中从上至下,加上 “上方和左上方”值的一半就行。

用两个for循环,将上一层的重量平分到下一层的,最后将最后一层的数据取出,用2086458231 除以 最小值得到每一份的大小,再乘以最大值

 

1. import java.util.Arrays;  

2. import java.util.Scanner;  

3.   

4. public class 承压计算 {  

5.     public static void main(String[] args) {  

6.         Scanner s=new Scanner(System.in);  

7.         double arr[][]=new double[30][30];  

8.         for(int i=0;i<29;i++){  

9.             for(int j=0;j<=i;j++){  

10.                arr[i][j]=s.nextInt();  

11.            }  

12.        }  

13.        for(int i=1;i<30;i++){  

14.            for(int j=0;j<=i;j++){  

15.                if(j==0)  

16.                    arr[i][j]+=arr[i-1][j]*1.0/2;  

17.                else arr[i][j]+=arr[i-1][j]*1.0/2+arr[i-1][j-1]*1.0/2;;  

18.            }  

19.        }  

20.        Arrays.sort(arr[29]);  

21.        System.out.println(2086458231/arr[29][0]*arr[29][29]);  

22.    }  

23.}  

 


4.魔方状态 

转化为123,注意排重

5. 取数位 

尾数(第k位=长度)对10取余数,不断循环

定值是第k位,调整长度(除以10),让长度=k

第三位,长度为3,利用尾数算法

F(x/10,k)


6. 最大公共子串 

矩阵法,动态规划dp

a[i][j]表示字符串s1的i位置和s2的j位置的最大公共子串的长度

如果s1的字符串的第一个字符和s2的第一个字符相同,那么a[1][1] = 1;

如果两个字符串的第二个字符和相同,那么,到第二个位置的最长公共子串就等于1+1 = 2,也就是到第一个字符的公共子串的个数+1。

从第一个位置开始,相同的就加1

所以a[i][j]=a[i-1][j-1]+1


7. 日期问题 
8.
包子凑数 
9.
分巧克力 

10. k倍区间

 

 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
代码下载:完整代码,可直接运行 ;运行版本:2022a或2019b或2014a;若运行有问题,可私信博主; **仿真咨询 1 各类智能优化算法改进及应用** 生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化 **2 机器学习和深度学习方面** 卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断 **3 图像处理方面** 图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知 **4 路径规划方面** 旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化 **5 无人机应用方面** 无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配 **6 无线传感器定位及布局方面** 传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化 **7 信号处理方面** 信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化 **8 电力系统方面** 微电网优化、无功优化、配电网重构、储能配置 **9 元胞自动机方面** 交通流 人群疏散 病毒扩散 晶体生长 **10 雷达方面** 卡尔曼滤波跟踪、航迹关联、航迹融合

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值