> 文章列表 > 第十四届蓝桥杯研究生组2023年省赛题解--全部采用Java语言实现

第十四届蓝桥杯研究生组2023年省赛题解--全部采用Java语言实现

第十四届蓝桥杯研究生组2023年省赛题解--全部采用Java语言实现

引言

今天现在这里 挖个坑,太忙了,这个专题不一样有时间补完,但我会尽力而为的。记录一下今天的日子:2023/04/21
看看这个坑要什么时候自己才能补完。

题目pdf下载:第十四届蓝桥杯研究生组pdf下载

在此特别感谢博主int 我的文章参考

第十四届蓝桥杯研究生组2023年省赛题解

  • 引言
  • 试题 A: 特殊日期
  • 试题 B: 与或异或
  • 特别说明一下:
  • 试题 C: 平均
  • 试题 D: 棋盘
  • 试题 E: 互质数的个数
  • 试题 F: 阶乘的和
  • 试题 G: 小蓝的旅行计划
  • 试题 H: 太阳
  • 试题 I: 高塔
  • 试题 J: 反异或 01 串

试题 A: 特殊日期

第十四届蓝桥杯研究生组2023年省赛题解--全部采用Java语言实现
这道题没啥思路可言,就是简单的对日期进行判断,然后指导一下什么是闰年

  1. 闰年即(能被4整除同时不能被100整除)||(能被400整除)
  2. 闰年有28天,平年有29天。

填空题,这是,因此答案是:35813063

package 蓝桥杯专题;public class _2023试题A_特殊日期 {public static void main(String[] args) {int ans = 0;for (int i=2000;i<2000000;i++){for (int j=1;j<=12;j++){//对月进行区分//31天日子if ( j==1 ||j==3 ||j==5||j==7||j==8 ||j==10 ||j==12 ){for (int k=1;k<32;k++){if (i%j==0 && i%k==0){ans++;}}}//30天日子else if ( j==4 ||j==6 ||j==9||j==11){for (int k=1;k<31;k++){if (i%j==0 && i%k==0){ans++;}}}else {//即二月//是闰年if ((i%4==0&&i%100!=0) || i%400==0 ){for (int k=1;k<30;k++){if (i%j==0 && i%k==0){ans++;}}}//是平年else{for (int k=1;k<29;k++){if (i%j==0 && i%k==0){ans++;}}}}}}System.out.println(++ans);}
}

试题 B: 与或异或

第十四届蓝桥杯研究生组2023年省赛题解--全部采用Java语言实现
第十四届蓝桥杯研究生组2023年省赛题解--全部采用Java语言实现

简单来说,就是限制头上5个数为10101
然后10个选择,每个选择有3中情况,然后其中有多少种结果操作后,结果为1
pow(3,10)=59049,暴力模拟不可取,得动脑了。

填空题,这是,因此答案是:30528

package 蓝桥杯专题;public class _2023试题B_与或异或01 {private static int dp[][] = new int[10][10];private static int map[][] = new int[10][10];private static int Status[] = new int[12];private static int sum = 0;public static void main(String[] args) {dp[0][1] = 1;dp[0][2] = 0;dp[0][3] = 1;dp[0][4] = 0;dp[0][5] = 1;DFS(1);System.out.println(sum);}private static void DFS(int x) {if (x == 11) {for (int i = 1; i <= 4; i++) {map[1][i] = Status[i];}for (int i = 1; i <= 3; i++) {map[2][i] = Status[i + 4];}for (int i = 1; i <= 2; i++) {map[3][i] = Status[i + 7];}for (int i = 1; i <= 1; i++) {map[4][i] = Status[10];}}for(int i=1;i<=4;i++){for(int j=1;j<=4-i+1;j++){if(map[i][j]==0) {dp[i][j]=dp[i-1][j]|dp[i-1][j+1];}if(map[i][j]==1) {dp[i][j]=dp[i-1][j]^dp[i-1][j+1];}if(map[i][j]==2) {dp[i][j]=dp[i-1][j]&dp[i-1][j+1];}}}if(dp[4][1]==1) {sum++;}}
}

特别说明一下:

由于Dotcpp上有对应的题目,以及测试渠道,后面的题目,我就不补充你那个题目详情了,大家可以移步那里观看。
https://www.dotcpp.com/oj/train/1096/

试题 C: 平均

由于这道题,我已经发过一篇文章,因此再这里就不再赘述,大家有需要,可以移步
试题 C: 平均
https://blog.csdn.net/weixin_43554580/article/details/130154949?spm=1001.2014.3001.5502

试题 D: 棋盘

由于这道题,我已经发过一篇文章,因此再这里就不再赘述,大家有需要,可以移步
试题 D: 棋盘
https://blog.csdn.net/weixin_43554580/article/details/130167554?spm=1001.2014.3001.5502

试题 E: 互质数的个数

由于这道题,我已经发过一篇文章,因此再这里就不再赘述,大家有需要,可以移步
试题 E: 互质数的个数
https://blog.csdn.net/weixin_43554580/article/details/130236509?spm=1001.2014.3001.5502

试题 F: 阶乘的和

试题 G: 小蓝的旅行计划

试题 H: 太阳

试题 I: 高塔

试题 J: 反异或 01 串