【蓝桥真题5】带三百人训练了十天精选蓝桥真题,看看他们都练些什么(三门语言题解)(下)

简介: 【蓝桥真题5】带三百人训练了十天精选蓝桥真题,看看他们都练些什么(三门语言题解)

🍄7.数的幂次


image.png


题目链接:数的幂次https://www.lanqiao.cn/problems/1181/learning/


       考察快速幂的考点,这个考点还是比较重要且常考的。大家可以直接通过快速幂函数的公式套进去即可。大家复制下来背下来直接食用即可,类似gcd一样。


import java.io.*;
import java.util.*;
public class Main {
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    static StreamTokenizer st = new StreamTokenizer(br);
    static PrintWriter out = new PrintWriter(new BufferedOutputStream(System.out));
    public static void main(String[] args)throws Exception {
        int t=nextInt();
        while(t-->0) {
            int n=nextInt();
            int m=nextInt();
            int p=nextInt();
            out.write(check(n,m,p)+"\n");
        }
    out.flush();
    }
        //快速幂函数,赋值照用即可
        static long check(long a,int k,int p) {
        long res=1;
        while(k>0) {
            //这样判断k的二进制最后一位是否是1
            if((k&1)==1) res=res*a%p;
            k>>=1;
            a=(long)a*a%p;
        }
        return res;
    }    
    // 读入整形(一个)
    public static int nextInt() throws Exception {
        st.nextToken();
        return (int) st.nval; // nval 读入的是 double 类型
    }
    // 读取字符串(一个)
    // 若读入的不是字符串,会 null
    public static String nextStr() throws Exception {
        st.nextToken();
        return st.sval;
    }
}


🌵8.最大乘积


image.png


题目链接:最大乘积https://www.lanqiao.cn/problems/629/learning/


       还是全排列的问题,但是这里我们需要去考虑插入乘号的位置。乘号可以放在第一个数字之后,或者最后一个数字之前。然后我们去判断乘积是否符合数字1~9的排列情况,如果符合就在已保存的值中取更大值。大家最好把每一段的逻辑抽成一个方法去写,这样出错我们可以更容易的去排错。


import java.util.HashSet;
import java.util.Set;
public class 最大乘积 {
  static int max=0;
  static int[] arr= {1,2,3,4,5,6,7,8,9};
  public static void main(String[] args) {
  dfs(0);
  System.out.println(max);
  }
  //全排列
  static void dfs(int k) {
  if(k==9) {
    check();
    return;
  }
  for(int i=k;i<arr.length;++i) {
    exch(i,k);
    dfs(k+1);
    exch(i,k);
  }
  }
  //插入乘号位置
  static void check() {
  for(int i=1;i<=8;++i) {
    int a=test(arr,i);
    if(isOk(a)) {
    max=Math.max(a,max);
    }
  }
  } 
  //获取乘积
  static int test(int[] arr,int k) {
  int pre=0;
  int count1=0;
  while(k-->0) {
    count1=count1*10+arr[pre];
    pre++;
  }
  int count2=0;
  for(int i=pre;i<arr.length;++i) {
    count2=count2*10+arr[i];
  }
  return count1*count2;
  }
  //判断答案是否有且仅包含1~9
  static boolean isOk(int n){
  Set<Integer> set=new HashSet<>();
  for(int i=1;i<=9;++i) set.add(i); 
  while(n!=0) {
    int a=n%10;
    if(!set.contains(a)) return false;
    else set.remove(a);
    n/=10;
  }
  return set.size()==0;
  }
  //交换函数
  static void exch(int a,int b) {
  int tmp=arr[a];
  arr[a]=arr[b];
  arr[b]=tmp;
  }
}


🌴9.含二天数


小蓝特别喜欢 22,今年是公元 2020 年,他特别高兴,因为每天日历上都可以看到 22。


如果日历中只显示年月日,请问从公元 1900 年 1 月 1 日到公元 99 年 12 月 31 日,一共有多少天日历上包含 22。即有多少天中年月日的数位中包含数字 2。


题目:含2天数https://www.lanqiao.cn/problems/1038/learning/


       还是同样的日期问题,调用我们的日期模板直接秒杀即可!


       代码转换:


public class 含2天数 {
  static int[] M= {0,31,28,31,30,31,30,31,31,30,31,30,31};
  public static void main(String[] args) {
  int ans=0;
  int y=1900,m=1,d=1;
  //先升日期再升值
  while(y!=9999||m!=12||d!=31) {
    if(y%400==0||(y%4==0&&y%100!=0)){
    M[2]=29;
    }else {
    M[2]=28;
    }
    d++;
    if(d>M[m]) {
    m++;
    d=1;
    }
    if(m>12) {
    m=1;
    y++;
    }
    if(check(y,m,d)) {
    ans++;
    }
  }
  System.out.println(ans);
  }
  static boolean check(int y,int m,int d) {
  while(y!=0) {
    if(y%10==2) return true;
    y/=10;
  }
  while(m!=0) {
    if(m%10==2) return true;
    m/=10;
  }
  while(d!=0) {
    if(d%10==2) return true;
    d/=10;
  }
  return false;
  }
}


🌰 10.积木大赛


image.png


题目链接:积木大赛https://www.lanqiao.cn/problems/384/learning/


       题目的本质是贪心。对于增加操作,我们也可以理解成将数组所有元素减到0的最少操作次数。我们可以将原数组分为n个递增的子数组,a[0,i],a[i+1,j],a[j+1,k]....。答案就是每段递增子序列的最大值减去除去第一段的每段的最小值之和。


       代码转换:


import java.util.Scanner;
public class 积木大赛 {
  public static void main(String[] args) {
  Scanner sc=new Scanner(System.in);
  int n=sc.nextInt();
  int ans=0,last=0;
  for(int i=0;i<n;++i) {
    int a=sc.nextInt();
    if(a>last) ans+=(a-last);
    last=a;
  }
  System.out.println(ans);
  }
}


相关文章
|
3月前
|
边缘计算 开发者
阿里云 ESA「春节加速计划」活动说明与参与指南
阿里云ESA「春节加速计划」(2月5日-28日)邀您零门槛体验边缘计算:邀请新用户开通免费版,即得¥10代金券(上限¥150)+免费版额度;冲榜还可赢最高¥1000奖励!永久免费版含无限流量、HTTPS、WAF等能力。
阿里云 ESA「春节加速计划」活动说明与参与指南
|
8月前
|
安全 物联网 数据处理
去中心化不只是区块链:智能设备的“分布式大脑”
去中心化不只是区块链:智能设备的“分布式大脑”
688 2
|
运维 监控 关系型数据库
运维实战:Windows服务挂掉了怎么办,通过Bat脚本实现自动重启
本文介绍了如何使用Bat脚本自动监控并重启Windows服务器上的挂掉服务,例如MySQL,以避免在假期等情况下需要紧急处理问题。首先,创建一个Bat脚本,设定每小时检查一次服务状态,如果服务停止则自动重启。脚本内容包括检查服务是否运行并根据状态执行相应操作。同时,脚本中包含了确保以管理员权限运行的代码。 脚本需设置为ANSI编码以防止乱码。推荐将Bat脚本封装为Windows服务以保证稳定运行,提供了使用NSSM工具、Windows服务程序和开源的Java工具winsw将批处理脚本转化为服务的方法。这些方法可以确保服务在后台可靠运行,即使在服务意外停止时也能自动恢复。
|
10月前
|
传感器 人工智能 运维
AI驱动的智能设备健康评估系统究竟如何应对企业运维挑战?
AI驱动的智能设备健康评估系统通过人工智能技术实现设备状态的主动监测和预测性维护。该系统由Prompt规则库、评估任务触发机制、Agent执行等核心组件构成,能够自动获取数据、智能分析设备状态并生成可视化报告。相比传统运维方式,系统具有规则灵活定义、低成本集成、高阶智能分析等优势,适用于能耗监测、异常检测、预测性维护等多种工业场景。产品专家三桥君通过详细解析系统工作流程和实际案例,展示了如何帮助企业实现从"事后维护"到"预测性运维"的智能化转型。
473 0
|
机器学习/深度学习 人工智能
NeurIPS 2024:收敛速度最高8倍,准确率提升超30%!华科发布MoE Jetpack框架
在NeurIPS 2024会议上,华中科技大学团队发布了MoE Jetpack框架,旨在解决专家混合(MoE)模型训练中的挑战。该框架通过检查点回收和超球面自适应MoE(SpheroMoE)层两项技术,利用预训练密集模型加速收敛并提高准确性。实验表明,MoE Jetpack在视觉任务上显著提升收敛速度(最高8倍)和准确性(超过30%),为MoE模型的实际应用提供了新动力。尽管存在一些限制,如初始权重依赖密集模型及计算资源需求,但该框架大幅降低了MoE模型的训练成本,提升了其可行性。论文地址:https://arxiv.org/abs/2406.04801。
448 45
|
人工智能
🎨 设计师必备!AI Stable Diffusion 提示词神器,让你秒变创意大师!
AI绘图新时代来临,设计师必备工具——**白盒子AI绘图提示词生成器**助你轻松跨越提示词难题。该工具操作简便,支持中英文切换,涵盖近1000个精选提示词,适用于各种风格创作。无论是新手还是专业设计师,都能大幅提升工作效率,快速实现创意构想。网址:[https://www.baihezi.com/ai-painting-prompt](https://www.baihezi.com/ai-painting-prompt)
1189 19
🎨  设计师必备!AI Stable Diffusion 提示词神器,让你秒变创意大师!
|
人工智能 自然语言处理 语音技术
《AI赋能鸿蒙Next:为特殊人群打造无障碍交互新体验》
在科技飞速发展的今天,鸿蒙Next设备借助人工智能技术,显著提升了特殊人群的无障碍交互体验。针对视障人群,提供精准屏幕朗读、视觉辅助智能问答和导航避障辅助;面向听障人群,实现AI声音修复、实时字幕与语音转文字;助力语言障碍者和老年人群体,通过AI优化交流与操作体验。开发者可利用鸿蒙Next的AI能力,深入了解用户需求,进行测试与优化,共同创造友好、便捷的无障碍环境,让特殊人群更好地融入数字社会,享受科技带来的美好生活。
729 8
|
算法
数据结构之蜜蜂算法
蜜蜂算法是一种受蜜蜂觅食行为启发的优化算法,通过模拟蜜蜂的群体智能来解决优化问题。本文介绍了蜜蜂算法的基本原理、数据结构设计、核心代码实现及算法优缺点。算法通过迭代更新蜜蜂位置,逐步优化适应度,最终找到问题的最优解。代码实现了单链表结构,用于管理蜜蜂节点,并通过适应度计算、节点移动等操作实现算法的核心功能。蜜蜂算法具有全局寻优能力强、参数设置简单等优点,但也存在对初始化参数敏感、计算复杂度高等缺点。
438 20
|
算法 索引
让星星⭐月亮告诉你,HashMap的resize()即扩容方法源码解读(已重新完善,如有不足之处,欢迎指正~)
`HashMap`的`resize()`方法主要用于数组扩容,包括初始化或加倍数组容量。该方法首先计算新的数组容量和扩容阈值,然后创建新数组。接着,旧数组中的数据根据`(e.hash & oldCap)`是否等于0被重新分配到新数组中,分为低位区和高位区两个链表,确保数据迁移时的正确性和高效性。
472 3
|
机器学习/深度学习 调度
mmseg配置解析 Polynomial Decay 多项式衰减
Polynomial Decay(多项式衰减)是一种常用的学习率调度方法,通过多项式函数逐步减少学习率,帮助模型更好地收敛。公式为:\[ lr = (lr_{initial} - \eta_{min}) \times \left(1 - \frac{current\_iter}{max\_iters}\right)^{power} + \eta_{min} \]。参数包括初始学习率、最小学习率、当前迭代次数、总迭代次数和衰减指数。适用于需要平滑降低学习率的场景,特别在训练后期微调模型参数。
562 0
mmseg配置解析 Polynomial Decay 多项式衰减

热门文章

最新文章