【蓝桥真题4】练练填空就想进国赛?拿下大题才能让你真正有底气(蓝桥31日冲刺打卡)(上)

简介: 【蓝桥真题4】练练填空就想进国赛?拿下大题才能让你真正有底气(蓝桥31日冲刺打卡)

🍋1.时间显示      


        小蓝要和朋友合作开发一个时间显示的网站。在服务器上,朋友已经获取

了当前的时间,用一个整数表示,值为从 1970 年 1 月 1 日 00:00:00 到当前时

刻经过的毫秒数。


       现在,小蓝要在客户端显示出这个时间。小蓝不用显示出年月日,只需要

显示出时分秒即可,毫秒也不用显示,直接舍去即可。


       给定一个用整数表示的时间,请将这个时间对应的时分秒输出。


       具体的输入输出可以在题目链接可看。


       题目链接:时间显示https://www.lanqiao.cn/problems/1452/learning/


       这是去年JavaB组省赛的第一道大题,有的人一看到就来一句——卧槽!这么难?从1970年开始那得有多少毫秒?算了算了先看下一题。但是大家要想一下? 题目求的是什么?是今天的时分秒!我们不需要去关心今天是多少年多少月多少日,所以我们有下面的这几步思考步骤:


        设接收到的总毫秒数为n。


        1.首先先n=n/1000。因为n的单位是毫秒,我们需要的最低精准单位是秒,而1s=1000ms,所以不足一秒的毫秒我们直接舍去,此时n的单位变成了秒


       2.进行操作n=n%(60*60*24)。因为我们只关心今天走了的时间,也就是今天走了多少秒,我们对一整天的秒数进行取余,则获得的就是未满一天的秒数,也就是今天的


       3.long hour=n/3600;因为我们已经获得了今天的秒数,1h=3600s,我们算出n可以整除出多少个3600,则就是多少个小时,由此得到了今天的小时数。


       4.n%=3600;long month=n/60;我们先对n%3600是为了得到剩下未满一个小时的秒数,也就是分加上秒的,我们对n取余60,就能得到分钟的值。


       5.n%=60; long s=n;同理于分,先取余60,剩下的n就是我们最后的秒数了。


代码转换:


import java.util.Scanner;
public class 时间显示 {
  public static void main(String[] args) {
  Scanner sc=new Scanner(System.in);
  long n=sc.nextLong();
  //拿到的是毫秒,先转换为秒,1m等于1000ms
  n=n/1000;
  //现在拿到的是秒,对一天的秒数取余即可获得今天的秒数
  n=n%(60*60*24);
  //现在拿到的是一天的秒数,开始转化为答案,一小时有3600秒,先获得秒
  long hour=n/3600;
  //现在获得分钟加分
  n%=3600;
  //再获得分钟
  long month=n/60;
  //再获得秒
  n%=60;
  long s=n;
  //这里涉及输出格式,大家可以学习一下printf的输出格式
  System.out.printf("%02d:%02d:%02d",hour,month,s); 
  }
}


👑2.分巧克力


儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。


小明一共有 N 块巧克力,其中第 i 块是 Hi×Wi 的方格组成的长方形。为了公平起见,


小明需要从这 N 块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克力需要满足:


形状是正方形,边长是整数;


大小相同;


例如一块 6x5 的巧克力可以切出 6 块 2x2 的巧克力或者 2 块 3x3 的巧克力。


当然小朋友们都希望得到的巧克力尽可能大,你能帮小明计算出最大的边长是多少么?


具体的输入输出可以在题目链接可看。


题目链接:分巧克力 https://www.lanqiao.cn/problems/99/learning/    


       首先对于一块Hi×Wi的巧克力,如果我们设切出的巧克力边长为n(题目要求必须是正方形),那么这块巧克力能切出我们符合要求的巧克力的块数为(Hi/n)×(Wi/n)。一个小破图给大家理解一下。

     

image.png

       这个公式对于每块巧克力都是适用的。也就是说,当我们选定一个n,就可以计算出这一堆巧克力能切出多少块边长为n的巧克力。我们需要去找出最大的符合条件的n,很明显,我们需要引用到二分查找——去找到最大的符合条件的n,这里的符合条件是保证切出的块数大于等于K,也就是足够每个小朋友分到。


       代码转换:


import java.util.Scanner;
public class Main {
  public static void main(String[] args) {
  Scanner sc=new Scanner(System.in);
  int N=sc.nextInt();
  int K=sc.nextInt();
        //用来存储每块巧克力的长和宽
  int[][] arr=new int[N][2];
  for(int i=0;i<N;++i) {
    arr[i][0]=sc.nextInt();
    arr[i][1]=sc.nextInt();
  }
        //r的值根据题目给的长和宽进行选择
  int l=1;
  int r=100000;
  while(l<r) {
    int mid=(l+r+1)/2;
            //check满足说明切的块数足够分
    if(check(arr,mid,K)) l=mid;
    else r=mid-1;
  }
  System.out.println(l);
  }
  //X越小块数越多,找出X的最大值
  //判断以边长X来分,是否可以分够X块
  static boolean check(int[][] arr,int X,int K) {
  int count=0;
  for(int i=0;i<arr.length;++i) {
            //这里计算能分多少块边长为X的巧克力
    int ans=(arr[i][0]/X)*(arr[i][1]/X);
    count+=ans;
  }
  return count>=K;
  }
}


🎅3.时间加法


现在时间是 a 点 b 分,请问 t 分钟后,是几点几分?


题目链接:时间加法https://www.lanqiao.cn/problems/548/learning/


具体的输入输出可以在题目链接可看。


         这是今年一道简单的模拟赛题目,我们需要模拟时间的加法,这里需要完成分钟超过60后对小时进行进位,小时超过24小时后需要重置(也就是到达了第二天)


        代码转换:


import java.util.Scanner;
public class Main {
  public static void main(String[] args) {
  Scanner sc=new Scanner(System.in);
  int a=sc.nextInt();
  int b=sc.nextInt();
  int t=sc.nextInt();
        //让分钟加上t
  b+=t;
  int ans=0;
        //如果分钟达到60,需要进位
  if(b>=60) {
            //算出小时的增量
    ans=b/60;
            //对60取余算出分钟
    b%=60;
  }
        //小时加上增量
  a+=ans;
  if(a>=24) {
            //如果小时超过24需要取余重置
    a%=24;
  }
  System.out.println(a);
  System.out.println(b);
  }
}


相关文章
蓝桥省赛前晚复习数学知识
蓝桥省赛前晚复习数学知识
|
C++ Python
【浙江大学PAT真题练习乙级】1001 害死人不偿命的(3n+1)猜想(15分)真题解析
【浙江大学PAT真题练习乙级】1001 害死人不偿命的(3n+1)猜想(15分)真题解析
|
机器学习/深度学习 人工智能 BI
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十七天
大家好 我是泡泡 倒数六天 蓝桥开赛!记得打印准考证!
110 0
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十七天
|
人工智能 移动开发 测试技术
第十三届蓝桥杯A组省赛填空程序真题集
第十三届蓝桥杯A组省赛填空程序真题集
452 0
第十三届蓝桥杯A组省赛填空程序真题集
|
算法
蓝桥杯真题31日冲刺国一 | 每日题解报告 第三十一天
大家好啊,我是泡泡,今天是我们蓝桥杯打卡最后一天了,后天也就比赛了,明天大家把各种类型的题目复习一下,我中午会发出最后一篇复习文章,希望各位能拿到自己想要的成绩!陪伴大家这么久了,以后也会继续更新优质算法文章等,各位也不要忘记初心,不要为了比赛而比赛,学到东西才是王道!
177 0
|
人工智能
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十一天
大家好,我是泡泡,今天有点忙题解来晚了!
73 0
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十一天
|
机器学习/深度学习
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十八天
大家好,我是泡泡,距离蓝桥杯还有五天,大家一定要坚持下去
116 0
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十八天
|
Java
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十二天
大家好,我是泡泡,今天给大家带来五到2020年填空真题和两个打卡题
105 0
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十二天
|
Java
蓝桥杯真题31日冲刺国一 | 每日题解报告 第十九天
大噶好,我系泡泡,今天的题难度很高(我是fw) 有能力的自己搞一下,省赛的同学今天就当放松一下
166 0
蓝桥杯真题31日冲刺国一 | 每日题解报告 第十九天
|
存储
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十五天
大家好,我是泡泡,接下来几天每天都有复习
172 0