第三次ACM校队周赛考核题+生活随笔

本周ACM校队周赛考核题

1.简单数学(签到题)

题目:

Joker想要买三张牌,但是三张牌太少了,老板不卖,除非Joker算出老板给出的数学题。

现在老板给出t组数据,每一组数据有三个数a,b,c,要计算出每一组数据三个数相加是否是3的倍数,是的话就输出”Yes”,否则就输出”No”.

 

代码 


import java.util.Scanner;public class Main{public static void main(String[] args) {// TODO Auto-generated method stubScanner scanner=new Scanner(System.in);int n=scanner.nextInt();int arr[][]=new int[n][3];for(int i=0;i<n;i++) {for(int j=0;j<3;j++) {arr[i][j]=scanner.nextInt();}}for(int i=0;i<n;i++) {long sum=0;for(int j=0;j<3;j++) {sum+=arr[i][j];}if(sum%3==0) {System.out.println("Yes");}else {System.out.println("No");}}}}

2.奇奇偶偶

题目:

Joker今天学完了数组,他发现在数组上面可以进行很多有意思的操作,现在他想对一个长度为n的数组a进行以下操作:

将两个元素 ai和 aj 互换,使得 i≠j、ai和 aj要么 都是偶数,要么 都是奇数。

他想知道是否可以通过执行任意次数(可能为零)的操作对数组进行非递减排序。

 

 

 分析:由于偶数只能和偶数交换,奇数只能和奇数交换,因此只需要判断排序后的数组,跟原来的数组 相比,每个位置上的奇偶性是否改变,如果没有改变,证明可以通过任意次数的操作对数组进行非递减排序,

代码:

import java.util.*;
public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);int t = sc.nextInt();while(t-->0){int n = sc.nextInt();int[] a = new int[n];int[] x = new int[n];for(int i = 0 ;i< n;i++){a[i] = sc.nextInt();x[i] = a[i];}Arrays.sort(a);boolean flag = false;for(int i = 0;i<n;i++){if(a[i] % 2 != x[i] % 2) flag = true;}if(flag) System.out.println("No");else System.out.println("Yes");}}
}

 3.圆的艺术(数学问题)

给定一个圆和n条直线,现在需要使用这n条线尽可能地把圆分成多份,问使用n条线最多能把圆分成几份?

输入描述:

第一行给定一个正整数T,代表数据组数。(T<=1e5)。

接下来T行,每行一个非负整数,代表线的数量。(<=1e6)

输出描述:

共T行,每行一个整数,代表n条线最多能把圆分成几份。

示例:输入 2   2  4   输出:  4   11

如果想要把圆分成的块数最多,那么增加的每一条线都不能过前面所有的交点,分析如下

 

圆面本身是一个部分;

  第一条直线只能穿过一个部分(圆面本身),画第一条直线时圆面加一个部分,圆面最多分成(1+1)=2(块);

  第二条直线只能穿过两个部分,画第二条直线时圆面加两个部分,圆面最多分成(1+1+2)=4(块);

  第三条直线只能穿过三个部分,画第三条直线时圆面加三个部分,圆面最多分(1+1+2+3)=7(块);

  第四条直线能穿过四个部分,画第四条直线时圆面力四个部分,圆面最多分(1+1+2+3+4)=11(块);

  依次类推可得,n条直线最多能将圆面分成[1+(1+2+3+4+…+n)](块)

也就是

因此,代码如下

import java.util.*;
public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);int t = sc.nextInt();while(t-->0){long res = 0L;long n = sc.nextLong();System.out.println(n*(n-1) /2 + 1 + n);}}
}

4.又是时间问题

自从上一次,Joker解决完两个时间点的差值之后,他奋发图强努力学习,终于又遇到了一个问题,他家的时钟坏了,显示的时间不一定正确(即大小和顺序可能会出错),但是显示的时间(时钟,分钟,秒钟一定都是2位数的),所以他想请你帮他看看他家的时钟。现在给定t个字符串每个字符串都表示一个时间,现在要解决的问题是,判断每一个字符串表示的时间在经过换位后是否可以变成正确的时间,不可以的话就输出No,否则就计算出这个字符串所能表示的正确时间的最大时间的总秒数。

(注:正确时间: (0 <= |时钟| <= 23, 0 <= |分钟| <= 59, 0 <= |秒钟| <= 59))

 输入描述:

第一行输入一个正整数t表示组数;接下来t行每行一个字符串表示时间,

输出描述:

对于是正确的时间就输出,这个字符串所能表示的最大的正确时间的总秒数,否则就输出”No”;

例子:

输入;

3
12:20:60
20:23:40
00:20:30

输出

No
85220
73800

分析:考查的主要就是字符串转换为数字,最后判断一下

代码如下

import java.util.Arrays;
import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int t = sc.nextInt();for (int i = 0; i < t; i++) {String s = sc.next();String[] split = s.split(":");Arrays.sort(split);int[] arr = new int[]{Integer.valueOf(split[0]), Integer.valueOf(split[1]), Integer.valueOf(split[2])};if (arr[0] >= 24 || arr[2] >= 60) {System.out.println("No");continue;}int cnt = 0;for (int j = split.length - 1; j >= 0; j--) {if (arr[j] <= 23) {cnt = j;break;}}if (cnt==0){System.out.println(arr[0]*3600+arr[2]*60+arr[1]);}else if (cnt==1){System.out.println(arr[1]*3600+arr[2]*60+arr[0]);}else{System.out.println(arr[2]*3600+arr[1]*60+arr[0]);}}}
}

总之,这周的题不是很难,主要是对基本功的考察,由此可见自己的基本功还是不是很扎实,需要好好练习

生活:

这周过的很忙,但是是那种虚无的忙,很讨厌这种感觉,其实,凡事,应该提前做好规划的,而不是总在等待deadline

向上的路总是难走的,因为它无时不刻磨练着一个人的意志力。

隔壁新乡学院的同学,再次联系到的时候,没想到已经考研上岸了,他说,这一路,真的很难走,从大一的挂四课被给家长打电话,到最后的考研上岸,整天整天的学,整夜整夜的熬,度过了疫情三年,度过了大洪水,每年只有春节的时候回家,那时候觉得根本看不到希望,也很迷茫,不知道路在哪里......。

总之,一路辛苦,以后,继续加油,追梦人。每个人都会去选择不同的路,但是,无论选择了哪条路,都应该静下心来去沉淀,去学习,遇到困难的时候,都应该告诉自己再往前一步,哪怕是自救还是借助他人的力量,而不是就此踌躇不前。

黎明之前最黑暗,谁先放弃谁笨蛋!

✨✨✨✨✨✨✨✨前面终有些光亮在等着你✨✨✨✨✨✨✨✨

 下周就要继续写项目了,还有每天一两道算法题,还有对vue的知识点的理解和掌握。

偶,对了,收到了 全国大学生英语竞赛的省级二等奖证书了,是上学期的比赛了,开心开心,继续加油

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

水库大坝可视化智能远程监管方案,助力安全监测智能巡检

一、背景需求 水库大坝作为防洪度汛的重要设施&#xff0c;其安全问题直接关系到人民群众的生命财产安全。因此&#xff0c;必须加强对大坝水库的安全管理&#xff0c;对水库除险加固和运行管护要消除存量隐患&#xff0c;实现常态化管理&#xff0c;同时要配套完善重点小型水…

Spring Boot 3 整合 xxl-job 实现分布式定时任务调度,结合 Docker 容器化部署(图文指南)

目录 前言初始化数据库Docker 部署 xxl-job下载镜像创建容器并运行访问调度中心 SpringBoot 整合 xxl-jobpom.xmlapplication.ymlXxlJobConfig.java执行器注册查看 定时任务测试添加测试任务配置定时任务测试结果 结语附录xxl-job 官方文档xxl-job 源码测试项目源码 前言 xxl-…

AutoSAR的UB位

AutoSAR的UB位 作用 在AUTOSAR&#xff08;汽车开放系统架构&#xff09;中&#xff0c;UB位&#xff08;Update Bit&#xff09;起着非常关键的作用。它主要用于指示某个信号或信号组的数据是否已被更新。以下是UB位的几个主要功能和应用情景&#xff1a; 信号更新指示&…

内涝积水监测仪怎么样?万宾科技城市内涝积水监测的作用

在城市建设发展过程中&#xff0c;道路基础设施的建设永远都占据着重要一席&#xff0c;因为人们出行一旦受阻便会影响城市进展&#xff0c;也会影响经济发展。在城市之中有隧道&#xff0c;下穿式立交桥等容易存积水的地方&#xff0c;一旦出现恶劣暴雨天气&#xff0c;这些地…

降低存储网络55% 延迟!阿里云存储论文入选计算机顶会

近日&#xff0c;计算机系统领域的国际顶级学术会议USENIX ATC 2023在美国波士顿市举行。凭借在规模化部署和应用模型上的创新&#xff0c;阿里云存储团队发表的技术论文《Deploying User-space TCP at Cloud Scale with LUNA》被顶会收录&#xff0c;这是继NSDI 21、SIGCOMM 2…

四十一、【进阶】索引使用SQL提示

1、SQL提示使用情景 在使用MySQL时&#xff0c;当一个字段参在于多个索引中时&#xff0c;默认情况下&#xff0c;MySQL会自动选择一个索引&#xff0c;但我们可以指定索引吗&#xff1f;可以忽略某一种索引吗&#xff1f; 答案是可以的。 前提&#xff1a;profession字段已经…

Security ❀ DNS协议常见DOS攻击详解

文章目录 1. DNS协议基础概述2. DNS报文详解2.1. DNS Request 请求包2.2. DNS Reply 响应包 3. DNS Request Flood3.1. 攻击原理3.2. 防护方法3.2.1. TC源认证3.2.2. 被动防御3.2.3. CNAME防护模式3.2.4. *CANME类型解析过程 4. DNS Reply Flood4.1. 攻击原理4.2. 防护方法 5. …

Vue 自动登录示例

router.beforeEach((to, from, next) > {if (to.meta.title) {document.title "xxxxx" to.meta.title;}let token window.sessionStorage.getItem(userInfo);// 如果没有token 并且没有任何响应 就要去action中自动登录if (!token) {const loginForm {usernam…

Mac电脑怎么运行 Office 办公软件

虽然 Office 软件也有 Mac 版本的&#xff0c;但是有蛮多小伙伴用起来还是感觉不得劲&#xff0c;毕竟接触了太久的 Windows&#xff0c;所以想要使用 Windows 版本的 Office 软件。 今天就给大家介绍一下怎么在 Mac 电脑中运行 Windows 版本的办公软件&#xff0c;在这里就需…

“泰山众筹:引爆全球的财富狂潮!“

想象一下&#xff0c;你手中的白酒不再只是简单的饮品&#xff0c;而是一份珍贵的投资&#xff0c;一份充满惊喜的冒险&#xff0c;一份财富的种子&#xff01;在这个神奇的时刻&#xff0c;让我们一起探索泰山众筹模式的魅力&#xff01; 在传统的投资领域&#xff0c;你是否…

历年网规上午真题(2017年)

解析:D/C 计算机主要性能指标:时钟频率(主频)、运算速度、运算精度、内存大小、数据处理速率(PDR)等 数据库主要指标:最大并发、负载均衡能力、最大连接数等 解析:A 敏捷开发是一种应对快速变化的需求的一种软件开发方法,是一种以人为核心、迭代、循序渐进的开发方…

Linux shell编程学习笔记19:until循环语句

Linux shell编程中的until语句&#xff0c;在功能上与其它编程语言一致&#xff0c;但在结构与其它编程语言又不太一样。在大多数编程语言中&#xff0c;until语句的循环条件表达式一般位于循环体语句的后面&#xff0c;但是在Linux shell编程中&#xff0c;until语句的循环条件…