蓝桥冲刺31天之315

没有一个冬天不可逾越

也没有一个春天不会来临

所有美好的食物,都会有一个等待的过程

低谷时蛰伏,静默时沉淀

做三四月的事,在八九月自有答案

目录

A:0的个数

题目描述:

输入格式

输出格式

样例输入

样例输出

评测用例规模与约定

延伸之字符串:

题解思路:

参考代码:

B:超级质数

题目描述:

题解思路:

答案:

C:卡牌

题目描述:

输入格式

输出格式

样例输入

样例输出

样例说明

评测用例规模与约定

题解思路:

参考代码:

D:染色时间

题目描述:

输入格式

输出格式

样例输入

样例输出

评测用例规模与约定

题解思路:

参考代码:


A:0的个数

题目描述:

给定一个正整数 n ,请问 n 的十进制表示中末尾总共有几个 0 ?

输入格式

输入一行包含一个正整数 n。

输出格式

输出一个整数,表示答案。

样例输入

20220000

样例输出
 

4

评测用例规模与约定

对于所有评测用例,1 <= n <= 1000000000

延伸之字符串:

public char charAt(int index):根据下标获取字符

public int length():返回字符串的长度

public boolean contains(String str):判断字符串是否包含特定str

public String trim():去除前后空格

public String toUpperCase:转换成大写

public String toLowerCase:转换成小写

public String[] split(String str):根据str做拆分

题解思路:

这题输入数据比较小,可以直接用int型然后每一次取最后一位数即可

但是如果这题变成1<=n<=10^1e5的时候,那么就需要通过字符串进行判断

我们用字符串存储,每一次读取最后一个字符:charAt(i),然后判断它是否等于‘0’即可,等于就计数,不等于就输出结束

参考代码:

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String ss=scan.nextLine();
        int s=0;
        for(int i=ss.length()-1;i>=0;i--){//从最后一位往前判断
          if(ss.charAt(i)=='0') s++;//计数
          else{
            System.out.println(s);//输出
            return;//强制结束
          }
        }
        scan.close();
    }
}

B:超级质数

题目描述:

如果一个质数 P 的每位数字都是质数, 而且每两个相邻的数字组成的两位 数是质数, 而且每三位相邻的数字组成的三位数是质数, 依次类推, 如果每相 邻的 k 位数字组成的 k 位数都是质数, 则 P 称为超级质数。

如果把超级质数 P 看成一个字符串, 则这个超级质数的每个子串都是质 数。

例如, 53 是一个超级质数。

请问, 最大的超级质数是多少?

题解思路:

10以内的质数只有:2,3,5,7

因为每两位也是质数,所以2和5最多只能出现在第一位数

且 AA形式的数不为质数,也就是说从第二位开始为:373737...或者737373....
第一种方案中,将2   5   7带入得到最大为:73

第二种方案中,将2   3   7带入得到最大为:373

答案:

373

C:卡牌

题目描述:

这天, 小明在整理他的卡牌。

他一共有 n 种卡牌, 第 ii 种卡牌上印有正整数数 i(i∈[1,n]), 且第 i 种卡牌 现有 ai​ 张。

而如果有 n 张卡牌, 其中每种卡牌各一张, 那么这 n 张卡牌可以被称为一 套牌。小明为了凑出尽可能多套牌, 拿出了 m 张空白牌, 他可以在上面写上数 i, 将其当做第 i 种牌来凑出套牌。然而小明觉得手写的牌不太美观, 决定第 ii 种牌最多手写 bi 张。

请问小明最多能凑出多少套牌?

输入格式

输入共 3 行, 第一行为两个正整数 n,m。

第二行为 nn 个正整数 a1,a2,…,an。

第三行为 nn 个正整数 b1,b2,…,bn。

输出格式

一行, 一个整数表示答案。

样例输入

4 5
1 2 3 4
5 5 5 5

样例输出

3

样例说明

这 5 张空白牌中, 拿 2 张写 1 , 拿 1 张写 2 , 这样每种牌的牌数就变为了 3,3,3,4 可以凑出 3 套牌, 剩下 2 张空白牌不能再帮助小明凑出一套。

评测用例规模与约定

对于 30%30% 的数据, 保证 n≤2000;

对于 100%100% 的数据, 保证 n≤2×10^5;ai,bi≤2n;m≤n^2。

题解思路:

这题用到一点贪心思维,简称:贪一下

我们在不考虑有多少张空白纸的情况下(即空白纸无限量),那么最多能凑出:Min(ai+bi)

ai+bi的值最小数量就是可以凑出来最多的数量

现在考虑怎么花费最少的空白纸得到某一个数量成套卡牌
假设我现在需要5套卡牌,是不是每种数量小于5的卡牌数都需要补充到5,而比5大的我们就不需要去浪费卡牌填充

假设当前卡牌位置 ax,需要凑齐ax套卡牌,那么总共会填补多少张?

x*ax-sum(a1+a2+...+ax)

其中 x*ax表示把a1,a2,a3....ax全部补到与ax相同数量时,总共会有x*ax张卡

sum(a1+a2+...+ax)表示在不补充时总共有sum张卡,两者相减表示需要补充的卡量

如果这个值小于给定的m值,则表示可以,继续往后判断,不然的话直接判断(sum+m)/x,表示平均下来每一种可以补充到的值,即为最终值

最后,与一开始不考虑空白纸的情况下的值比较,选取小的值输出即可

参考代码:

import java.util.*;
import java.io.*;
public class Main {
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    static StreamTokenizer st = new StreamTokenizer(br);
    static PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));
    public static void main(String[] args) throws Exception{
        int n=nextInt();
        long m=nextLong();
        long []arr=new long[n+1];
        long []brr=new long[n+1];
        long []crr=new long[n+1];
        for(int i=1;i<=n;i++) arr[i]=nextInt();
        for(int i=1;i<=n;i++) brr[i]=nextInt()+arr[i];
        Arrays.sort(arr);//按照已有值排序
        Arrays.sort(brr);//直接找到不考虑空白卡情况最多能凑齐几套
        long min=brr[1];
        long max=0;//最多能凑齐max套
        for(int i=1;i<=n;i++){
          crr[i]=crr[i-1]+arr[i];//前面数总和,前缀和一下
          if(arr[i]*i<=crr[i]+m) max=arr[i];//表示可行
          else {//不可行,求解max
            max=Math.max(max,(crr[i]+m)/i);
            break;
        }
      }
      pw.println(Math.min(min,max));//输出小的
      pw.flush();
    }
    public static int nextInt() throws Exception {//int型
        st.nextToken();
        return (int) st.nval;
    }

    public static long nextLong() throws Exception {//long型
        st.nextToken();
        return (long) st.nval;
    }
}

D:染色时间

题目描述:

小蓝有一个 nn 行 mm 列的白色棋盘, 棋盘的每一个方格都可以被染成彩色。

每个方格有一个染色时间 tijtij​, 不同方格的染色时间可能不同。如果一个方 格被触发了染色, 这个方格就会在 tijtij​ 秒之后变成彩色, 然后将自己上下左右四 个方向相邻的方格触发染色。每个方格只能被触发染色一次, 第一次触发之后 的触发为无效触发。

给定每个方格的染色时间, 在时刻 0 触发第一行第一列的方格染色, 请问 多长时间后整个棋盘完成染色。

输入格式

输入的第一行包含两个整数 n,mn,m, 分别表示棋盘的行数和列数。

接下来 n 行, 每行 mm 个正整数, 相邻的整数之间用一个空格分隔, 表示每 个方格的染色时间。该部分的第 ii 行第 jj 个整数表示 tijtij​, 即第 ii 行第 jj 列的方 格的染色时间。

输出格式

输出一行包含一个整数, 表示整个棋盘完成染色的时间。

样例输入


2 3

1 2 3

4 5 6

样例输出


12

评测用例规模与约定

对于 30% 的评测用例, 1≤n,m≤10

对于 60% 的评测用例, 1≤n,m≤50

对于所有评测用例, 1≤n,m≤500,1≤tij≤1000

题解思路:

简单说明:我是用的bfs模板直接强行解,最终选择所有数中的最大值,在测试有50%几率通过(卡在1s上下,比赛的测试时间是3s)

通过bfs每一次增加对应时间,然后判断该位置当前的时间和之前的时间相比,是否有所减小,是的话就将该位置加入队列中,以确保当前位置的值为可以走到的最小值

参考代码:

import java.util.*;
import java.io.*;
public class Main {
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    static StreamTokenizer st = new StreamTokenizer(br);
    static PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));
    static int n;
    static int m;
    static  int [][]arr;//记录每个格子需要的染色时间
    static int [][]brr;//记录染色到对应格子需要的时间
    static int [][]d={{-1,0},{1,0},{0,-1},{0,1}};
    public static void main(String[] args) throws Exception{
        n=nextInt();
        m=nextInt();
        arr=new int[n][m];
        brr=new int[n][m];
        for (int i=0;i<n;i++){//每一个位置需要的时间
          String[] mm = br.readLine().split(" ");
            for (int j=0;j<m;j++)
                arr[i][j]=Integer.parseInt(mm[j]);
        }

        brr[0][0]=arr[0][0];
        int max=0;
        bfs();
        for (int i=0;i<n;i++){//求得最大值
            Arrays.sort(brr[i]);
            max=Math.max(max,brr[i][m-1]);
        }
        System.out.println(max);//输出
    }
    static void bfs(){
        Queue<int []> q = new LinkedList<>();
        q.add(new int[] {0,0});//把起点加入队列
        int xa,ya,t;
        int []ss=new int[2];
        while (!q.isEmpty()){
            ss=q.poll();
            int x=ss[0],y=ss[1];//取出
            t=brr[x][y];//当前位置的花费时间
            for (int i=0;i<4;i++){//左右移动
                xa=x+d[i][0];
                ya=y+d[i][1];
                if (pd(xa,ya,t)){//判断
                    q.add(new int[]{xa,ya});
                    brr[xa][ya]=brr[x][y]+arr[xa][ya];//下一个位置的时间=上一个位置时间+该位置需要花费时间
                }
            }
        }
    }
    static boolean pd(int x,int y,int z){//判断
        if (x>=0&&x<n&&y>=0&&y<m){
            return z + arr[x][y] < brr[x][y]||brr[x][y]==0;
        }
        return false;
    }
    public static int nextInt() throws Exception {//int型
        st.nextToken();
        return (int) st.nval;
    }

    public static long nextLong() throws Exception {//long型
        st.nextToken();
        return (long) st.nval;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/417.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【动态规划】最长上升子序列、最大子数组和题解及代码实现

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法......感兴趣就关注我吧&#xff01;你定不会失望。 &#x1f308;个人主页&#xff1a;主页链接 &#x1f308;算法专栏&#xff1a;专栏链接 我会一直往里填充内容哒&#xff01; &…

JDK如何判断自己是什么公司的

0x00 前言 因为一些事情&#xff0c;遇到了这样一个问题&#xff0c;JDK如何判断自己是什么公司编译的。因为不同的公司编译出来&#xff0c;涉及到是否商用收费的问题。 平时自己使用的时候&#xff0c;是不会考虑到JDK的编译公司是哪一个&#xff0c;都是直接拿起来用&#…

指针和数组笔试题解析【下篇】

文章目录&#x1f441;️6.指针笔试题&#x1f440;6.1.试题&#xff08;1&#xff09;&#x1f440;6.2.试题&#xff08;2&#xff09;&#x1f440;6.3.试题&#xff08;3&#xff09;&#x1f440;6.4.试题&#xff08;4&#xff09;&#x1f440;6.5.试题&#xff08;5&am…

四边形不等式技巧(上)

文章目录1、引入1.1 题目描述1.2 思路分析1.3 代码实现1.4 小结2、题目二2.1 题目描述2.2 思路分析2.3 代码实现2.4 小结3、题目三&#xff1a;合并石子3.1 题目描述3.2 思路分析3.3 代码实现3.4 枚举优化3.5 对数器4、四边形不等式技巧特征5、应用&#xff1a;画家问题5.1 题目…

金三银四最近一次面试,被阿里P8测开虐惨了...

都说金三银四涨薪季&#xff0c;我是着急忙慌的准备简历——5年软件测试经验&#xff0c;可独立测试大型产品项目&#xff0c;熟悉项目测试流程...薪资要求&#xff1f;5年测试经验起码能要个20K吧 我加班肝了一页半简历&#xff0c;投出去一周&#xff0c;面试电话倒是不少&a…

javaSE系列之继承与多态

&#x1f497; &#x1f497; 博客:小怡同学 &#x1f497; &#x1f497; 个人简介:编程小萌新 &#x1f497; &#x1f497; 如果博客对大家有用的话&#xff0c;请点赞关注再收藏 &#x1f31e; javaSE系列之继承与多态继承关键字extends父类与子类在子类中访问父类的成员变…

【c++】继承

目录 一、继承的表现 子类对父类成员的访问权限 二、父类与子类之间的相互赋值 三、继承的作用域 如果是父类和子类构成隐藏呢&#xff1f; 四、子类的成员函数怎么写 1.default构造函数 2.析构函数 所以析构函数不需要我们显式调用。 五、继承与友元函数 六、继承与静…

记录使用chatgpt的复杂经历

背景 由于最近要写论文&#xff0c;c站的gpt也变样了&#xff0c;无奈之下和同学借了一个gpt账号&#xff0c;才想起没有npv&#xff0c;不好意思去要&#xff0c;也不想买&#xff0c;于是我找了很多临时免费的直到我看到有一家&#xff0c;邀请10人即可&#xff0c;而且只用…

力扣-股票的资本损益

大家好&#xff0c;我是空空star&#xff0c;本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目&#xff1a;1393. 股票的资本损益二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他…

码农饭碗不保——ChatGPT正在取代Coder

码农饭碗不保——ChatGPT正在取代Coder 最近被OpenAI的ChatGPT刷屏了。我猜你已经读了很多关于ChatGPT的文章&#xff0c;不需要再介绍了。假如碰巧您还不太了解ChatGPT是什么&#xff0c;可以先看一下这篇文章&#xff0c;然后再回来继续。 与ChatGPT对话很有趣&#xff0c;…

GPT4论文翻译 by GPT4 and Human

GPT-4技术报告解读 文章目录GPT-4技术报告解读前言&#xff1a;摘要1 引言2 技术报告的范围和局限性3 可预测的扩展性3.1 损失预测3.2 人类评估能力的扩展4 能力评估4.1 视觉输入 !!!5 限制6 风险与缓解&#xff1a;7 结论前言&#xff1a; 这篇报告内容太多了&#xff01;&am…

【MySQL基础】13—变量、流程控制、游标和触发器

⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以&#xff0c;麻烦各位看官顺手点个star~&#x1f60a; 如果文章对你有所帮助&#xff0c;可以点赞&#x1f44d;…

金丹一层 —— 深度刨析简单问题

目录 前言&#xff1a; 深度刨析问题 前言&#xff1a; 1.CSDN由于我的排版不怎么好看&#xff0c;我的有道云笔记比较美观&#xff0c;请移步有道云笔记 2.修炼必备 1&#xff09;入门必备&#xff1a;VS2019社区版&#xff0c;下载地址&#xff1a;Visual Studio 较旧的下…

Python基础—面向对象(超详版)

Python基础—面向对象面向对象简介什么是面向对象类与对象父类与子类面向对象的特性单继承与多继承单继承多继承多层继承封装多态重写与调用python重写python调用super函数前言&#xff1a; &#x1f3e0;个人主页&#xff1a;以山河作礼。 &#x1f4dd;​&#x1f4dd;​此专…

基于stm32智能语音电梯消毒系统

这次来分享个最近做的项目&#xff0c;stm32智能语音电梯消毒系统功能说明&#xff1a;在电梯&#xff0c;房间&#xff0c;客道区域内&#xff0c;检测到人&#xff0c;则执行相关动作&#xff01;例如继电器开关灯&#xff0c;喷洒酒精等行为。手机app/微信小程序可以控制需要…

滑动窗口算法

&#x1f34f;&#x1f350;&#x1f34a;&#x1f351;&#x1f352;&#x1f353;&#x1fad0;&#x1f951;&#x1f34b;&#x1f349;&#x1f95d; 啥是滑动窗口&#xff0c;它能解决什么样的问题&#xff1f; 文章目录&#x1f350;滑动窗口的概念&#x1f34f;适用场景…

Docker圣经:大白话说Docker底层原理,6W字实现Docker自由

说在前面&#xff1a; 现在拿到offer超级难&#xff0c;甚至连面试电话&#xff0c;一个都搞不到。 尼恩的技术社群&#xff08;50&#xff09;中&#xff0c;很多小伙伴凭借 “左手云原生右手大数据”的绝活&#xff0c;拿到了offer&#xff0c;并且是非常优质的offer&#…

蓝桥杯C++组怒刷50道真题

&#x1f33c;深夜伤感网抑云 - 南辰Music/御小兮 - 单曲 - 网易云音乐 &#x1f33c;多年后再见你 - 乔洋/周林枫 - 单曲 - 网易云音乐 50题才停更&#xff0c;课业繁忙&#xff0c;有时间就更&#xff0c;2023/3/14/15:06写下 目录 &#x1f44a;填空题 &#x1f33c;一…

ChatGPT作者John Schulman:我们成功的秘密武器

来源&#xff5c;TalkRL OneFlow编译 翻译&#xff5c;杨婷、徐佳渝、贾川 除了OpenAI&#xff0c;外界可能很少有人知道ChatGPT模型成功的真正原因&#xff0c;实际上&#xff0c;OpenAI也会对ChatGPT拥有的巨大影响力感到不可思议。这种困惑和惊喜就像工程师们解bug时获得的意…

在Docker上部署FastApi(最新)

目录 1 文件上传与新建目录 文件目录 2 修改requirements.txt文件 3 修改Dockerfile.txt文件 4 打包成镜像 5 运行启动 6 查看运行状态与日志 1 文件上传与新建目录 新建以下目录&#xff0c;其中.py文件是自己上传的 文件目录 新建以下文件 2 修改requirements.txt文件…