蓝桥杯(3.9)

2024-03-10 22:04
文章标签 蓝桥 3.9

本文主要是介绍蓝桥杯(3.9),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1210. 连号区间数
蓝桥杯暴力过80%

import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] res = new int[n];int[] copy = new int[n];for(int i=0;i<n;i++)res[i] = sc.nextInt();System.arraycopy(res, 0, copy, 0, n);int sum = 0;for(int i=0;i<n;i++) {for(int j=i;j<n;j++) {System.arraycopy(copy, 0, res, 0, n);Arrays.sort(res,i,j+1);//注意boolean f = true;for(int k=i+1;k<=j;k++) {if(res[k]!=res[k-1]+1) {f = false;break;}}if(f) {sum++;}}}System.out.println(sum);}
}

AC

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] res = new int[n];for(int i=0;i<n;i++)res[i] = sc.nextInt();int s = 0;for(int i=0;i<n;i++) {int MAX = Integer.MIN_VALUE;int MIN = Integer.MAX_VALUE;for(int j=i;j<n;j++) {MAX = Math.max(MAX, res[j]);MIN = Math.min(MIN, res[j]);if((MAX-MIN) == (j-i))	s++;}}System.out.println(s);}
}

1236. 递增三元组
蓝桥杯暴力过62.5%

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] a = new int[n+1];int[] b = new int[n+1];int[] c = new int[n+1];for(int i=1;i<=n;i++)a[i] = sc.nextInt();for(int i=1;i<=n;i++)b[i] = sc.nextInt();for(int i=1;i<=n;i++)c[i] = sc.nextInt();int sum = 0;for(int i=1;i<=n;i++) {for(int j=1;j<=n;j++) {for(int k=1;k<=n;k++) {if(a[i]<b[j] && b[j]<c[k])sum++;}}}System.out.println(sum);}
}

排序二分75%

import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] a = new int[n+1];int[] b = new int[n+1];int[] c = new int[n+1];for(int i=1;i<=n;i++)a[i] = sc.nextInt();for(int i=1;i<=n;i++)b[i] = sc.nextInt();for(int i=1;i<=n;i++)c[i] = sc.nextInt();Arrays.sort(a);Arrays.sort(b);Arrays.sort(c);//排序int sum = 0;for(int i=1;i<=n;i++) {for(int j=1;j<=n;j++) {int l = 1,r = n;while(l<r) {int mid = (l+r)/2;if(c[mid]>=b[j])	r = mid;else	l = mid+1;}for(int k=l;k<=n;k++) {if(a[i]<b[j] && b[j]<c[k])sum++;}}}System.out.println(sum);}
}
import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] a = new int[n+1];int[] b = new int[n+1];int[] c = new int[n+1];for(int i=1;i<=n;i++)a[i] = sc.nextInt();for(int i=1;i<=n;i++)b[i] = sc.nextInt();for(int i=1;i<=n;i++)c[i] = sc.nextInt();Arrays.sort(a);Arrays.sort(b);Arrays.sort(c);//排序int sum = 0;for(int i=1;i<=n;i++) {int sl = 1,sr = n;while(sl<sr) {int mid = (sl+sr)/2;if(b[mid]>=a[i])	sr = mid;else	sl = mid+1;}for(int j=sl;j<=n;j++) {int l = 1,r = n;while(l<r) {int mid = (l+r)/2;if(c[mid]>=b[j])	r = mid;else	l = mid+1;}for(int k=l;k<=n;k++) {if(a[i]<b[j] && b[j]<c[k])sum++;}}}System.out.println(sum);}
}

加上快读75%

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args) throws IOException{BufferedReader br = new BufferedReader(new InputStreamReader(System.in));PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));int n = Integer.parseInt(br.readLine());int[] a = new int[n+1];int[] b = new int[n+1];int[] c = new int[n+1];String[] s1 = br.readLine().split(" ");for(int i=1;i<=n;i++)a[i] = Integer.parseInt(s1[i-1]);String[] s2 = br.readLine().split(" ");for(int i=1;i<=n;i++)b[i] = Integer.parseInt(s2[i-1]);String[] s3 = br.readLine().split(" ");for(int i=1;i<=n;i++)c[i] = Integer.parseInt(s3[i-1]);Arrays.sort(a);Arrays.sort(b);Arrays.sort(c);//排序int sum = 0;for(int i=1;i<=n;i++) {int sl = 1,sr = n;while(sl<sr) {int mid = (sl+sr)/2;if(b[mid]>=a[i])	sr = mid;else	sl = mid+1;}for(int j=sl;j<=n;j++) {int l = 1,r = n;while(l<r) {int mid = (l+r)/2;if(c[mid]>=b[j])	r = mid;else	l = mid+1;}for(int k=l;k<=n;k++) {if(a[i]<b[j] && b[j]<c[k])sum++;}}}pw.println(sum);pw.close();}
}

1245. 特别数的和

import java.util.Scanner;
public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int sum = 0;for(int i=1;i<=n;i++) {String ss = i+"";char[] s = (i+"").toCharArray();boolean f = false;for(int j=0;j<s.length;j++) {if(s[j] == '2'||s[j] == '0'||s[j] == '1'||s[j] == '9') {
//					System.out.println(s);f = true;break;}}if(f) {sum+=Integer.parseInt(ss);}}System.out.println(sum);}
}

1204. 错误票据

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
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,Integer> map = new HashMap<>();sc.nextLine();while(n-- != 0) {String[] s = sc.nextLine().split(" ");for(int i=0;i<s.length;i++)map.put(Integer.parseInt(s[i]),map.getOrDefault(Integer.parseInt(s[i]), 0)+1);}int MAX = Integer.MIN_VALUE;int MIN = Integer.MAX_VALUE;int y = 0;for(Entry<Integer, Integer> entry:map.entrySet()) {MAX = Math.max(MAX, entry.getKey());MIN = Math.min(MIN, entry.getKey());if(entry.getValue() == 2)y = entry.getKey();}for(int i=MIN;i<=MAX;i++) {if(!map.containsKey(i)) {System.out.print(i+" "+y);return ;}}	}
}

466. 回文日期

import java.util.Scanner;public class Main{static int[] days = new int[]{0,31,28,31,30,31,30,31,31,30,31,30,31};public static boolean check(int date) {int year = date/10000;int month = date%10000 /100;int day = date%100;//年if(month == 2) {boolean f = (year%100!=0 && year%4==0)||(year%400==0);//闰年if(f) {if(day>28+1) {//是闰年的话看看2月是不是超过了29天return false;}}else {if(day>28) {//不是闰年的话看看2月是不是超过了28天return false;}				}}//月if(month == 0 || month > 12)//肯定是正数其次看看是不是1到12之间return false;//日if(day == 0 || (month!=2 && day>days[month]))//正数其次是除了二月之外的月份天数不可以超过days数组对应的值return false;return true;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);int date1 = sc.nextInt();int date2 = sc.nextInt();int res = 0;//遍历四位数for(int i=1000;i<10000;i++) {int date = i,x = i;for(int j=0;j<4;j++) {date = date*10+x%10;x/=10;}//构成回文数if(date1 <= date && date <= date2 && check(date))//判断构成的回文数是不是正确日期res++;}System.out.println(res);}
}

这篇关于蓝桥杯(3.9)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/795659

相关文章

C语言蓝桥杯

一、语言基础 竞赛常用库函数 最值查询 min_element和max_element在vector(迭代器的使用) nth_element函数的使用 例题lanqiao OJ 497成绩分析 第一种用min_element和max_element函数的写法 第二种用min和max的写法 二分查找 二分查找只能对数组操作 binary_s

找不同-第15届蓝桥省赛Scratch初级组真题第4题

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第183讲。 如果想持续关注Scratch蓝桥真题解读,可以点击《Scratch蓝桥杯历年真题》并订阅合集,查阅教程更方便。 第15届蓝桥杯省赛已于2024年8月24日落下帷幕,编程题一共有5题,分别如下: 猪八戒落地 游乐场 画西瓜 找不同 消

【蓝桥杯嵌入式(一)程序框架和调度器】

蓝桥杯嵌入式(一)程序框架和调度器 序、代码命名规则零、STM32和8051⼀、软件及环境安装⼆、⼯程框架搭建1.时钟配置2、SYS配置3、⼯程配置4、NVIC配置5.、Keil配置 三、系统初始化四、任务调度器 链接: 视频出处 序、代码命名规则 以下是一些常见的举例 零、STM32和8051 链接: 8位和32位单片机最本质区别 ⼀、软件及环境安装

【蓝桥杯嵌入式(二)Led、Key、Lcd】

蓝桥杯嵌入式(二)Led、Key、Lcd 五、Led模块1.原理图配置2. 知识点3.底层代码 六、Key模块1.原理图配置2.知识点3.底层代码底层代码(四⾏代码版本)底层代码(状态机版本) 七、LCD模块1.原理图配置2.知识点底层代码 五、Led模块 1.原理图配置 2. 知识点 链接: 上拉电阻的通俗解释 链接: 单⽚机怎么输出⾼电平!推挽输出和开

蓝桥杯:整数删除

// 蓝桥杯整数删除.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include<stdio.h>#define MAX 100void findmin(int a[],int n,int& pos){int min=a[0];pos=0;//pos=0我开始忘了,特别注意

第十五届蓝桥杯图形化省赛题目及解析

第十五届蓝桥杯图形化省赛题目及解析 一. 单选题 1. 运行以下程序,角色会说( )? A、29     B、31     C、33     D、35 正确答案:C 答案解析: 重复执行直到m>n不成立,即重复执行直到m<=n。所有当m小于或者 等于n时,循环结束。循环过程中变量m与变量n的变化如下表: 通过上述表格可知,循环到第五次循环结束。m的值为14,n的值为19

第八届蓝桥杯 最大公共子串(动态规划)

标题:最大公共子串 最大公共子串长度问题就是: 求两个串的所有子串中能够匹配上的最大长度是多少。 比如:"abcdkkk" 和 "baabcdadabc", 可以找到的最长的公共子串是"abcd",所以最大公共子串长度为4。 下面的程序是采用矩阵法进行求解的,这对串的规模不大的情况还是比较有效的解法。 请分析该解法的思路,并补全划线部分缺失的代码。 #include <stdio.h

蓝桥杯第八届 方格分割(dfs)

标题:方格分割6x6的方格,沿着格子的边线剪开成两部分。要求这两部分的形状完全相同。如图:p1.png, p2.png, p3.png 就是可行的分割法。试计算:包括这3种分法在内,一共有多少种不同的分割方法。注意:旋转对称的属于同一种分割法。请提交该整数,不要填写任何多余的内容或说明文字。   观察可得他是一个中心对称图形,我们只需要搜索它的对称线即可。我们可以把对称线抽象为从(

蓝桥杯备赛day02:递推

斐波那契数列 #include <bits/stdc++.h>using namespace std;int main(){int n;cin>>n;int dp[n+1];dp[1]=1;dp[2]=1;for(int i = 3;i <= n;i++) dp[i] = dp[i-1]+dp[i-2];cout<<dp[n];return 0;} n = int(input())

蓝桥杯入门训练——序列求和

入门训练 序列求和   时间限制:1.0s   内存限制:256.0MB         问题描述 求1+2+3+...+n的值。 输入格式 输入包括一个整数n。 输出格式 输出一行,包括一个整数,表示1+2+3+...+n的值。 样例输入 4 样例输出 10 样例输入 100 说明:有一些试题会给出多组样例输入输出以帮助你更好的做题。 一般在提