2023年第六届传智杯程序设计挑战赛(个人赛)B组 赛后复盘
传智杯赛后复盘
大家好 我是寸铁👊
2023年第六届传智杯程序设计挑战赛(个人赛)B组 赛后复盘
喜欢的小伙伴可以点点关注 💝
1. 字符串拼接
细节:一定要清楚nextLine()
和next()
的区别
nextLine()
是遇到回车会停下来
next
是遇到空格会停下来
很明显这里必须得选nextLine()
踩坑实录…
import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);String str1 = in.nextLine();String str2 = in.nextLine();StringBuffer s1 = new StringBuffer(str1);StringBuffer s2 = new StringBuffer(str2);s1.append(s2);System.out.println(s1);}
}
2. 差值
import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args) {// 创建Scanner对象用于接收输入Scanner in = new Scanner(System.in);// 输入战士数量int n = in.nextInt();int[] strengths = new int[n];for (int i = 0; i < n; i++) {strengths[i] = in.nextInt();}// 对战士战斗力进行排序 以便比较相邻两位战士的战力之差Arrays.sort(strengths);// 初始化最小差值为一个较大的值int minDif = 0x3f3f3f3f;// 枚举相邻两名战士战斗力之差的最小值 for (int i = 0; i < n - 1; i++) {int currentDif = strengths[i + 1] - strengths[i];//更新战力之差的最小值if (currentDif < minDif) {minDif = currentDif;}}System.out.println(minDif);in.close();}
}
3. . 红色和紫色
很有趣的一题,奇数和偶数的区别
import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();int m = in.nextInt();//方格数量为偶数则yukari赢 因为yukari总会染成紫色if(n % 2 == 0 || m % 2 == 0){System.out.println("yukari");}else{//方格数量为奇数则akai赢 因为最后akai不能染成紫色 System.out.println("akai");}}
}
4. abb
dp 举出后面相同的字符就+1
import java.util.*;// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextInt()) { // 注意 while 处理多个 caseint n = in.nextInt();String str = in.next();int[][] dp = new int[n + 1][26];Arrays.fill(dp[n], 0);for (int i = n - 1; i >= 1; i--) {char ch = str.charAt(i);for (int j = 0; j < 26; j++) {if (ch - 'a' == j) {dp[i][j] = dp[i + 1][j] + 1;} else {dp[i][j] = dp[i + 1][j];}}}long res = 0;for (int i = 1; i <= n; i++) {char c = str.charAt(i - 1);for (int j = 0; j < 26; j++) {if (c - 'a' != j && dp[i][j] >= 2) {res += dp[i][j] * (dp[i][j] - 1) / 2;}}}System.out.println(res);}}
}
5. kotorti和素因子
dfs + 质数筛
import java.util.Scanner;
import java.util.ArrayList;public class Main {static final int maxn = 1005;static final int INF = 0x3f3f3f3f;static int n, m, sum, min_, X;static ArrayList<Integer>[] e = new ArrayList[maxn];static boolean[] vis = new boolean[maxn];static boolean flag;static boolean isPrime(int n) {if (n == 1)return false;for (int i = 2; i <= Math.floor(Math.sqrt(n)); i++) {if (n % i == 0)return false;}return true;}static void prime(int n, int x) {for (int i = 1; i <= Math.floor(Math.sqrt(n)); i++) {if (n % i == 0) {if (isPrime(i))e[x].add(i);if (i * i != n && isPrime(n / i))e[x].add(n / i);}}}static void dfs(int y) {if (y == X) {flag = true;min_ = Math.min(min_, sum);return;}for (int i = 0; i < e[y].size(); i++) {if (!vis[e[y].get(i)]) {sum += e[y].get(i);vis[e[y].get(i)] = true;dfs(y + 1);vis[e[y].get(i)] = false;sum -= e[y].get(i);}}}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);n = scanner.nextInt();for (int i = 0; i < maxn; i++) {e[i] = new ArrayList<>();}X = 0;for (int i = 0; i < n; i++) {m = scanner.nextInt();prime(m, X++);}min_ = INF;dfs(0);if (flag)System.out.println(min_);elseSystem.out.println(-1);}
}
6. 红和蓝
赛后补题
import java.util.Scanner;
import java.util.Arrays;public class Main {static final int N = 2 * 100000 + 10;static int[] e = new int[N];static int[] h = new int[N];static int[] ne = new int[N];static int idx;static void add(int a, int b) {e[idx] = b;ne[idx] = h[a];h[a] = idx++;e[idx] = a;ne[idx] = h[b];h[b] = idx++;}static int n;static int cnt;static int[] colour = new int[N];static boolean flag;static void dfs1(int x, int fa) {int son = 0;for (int i = h[x]; i != -1; i = ne[i]) {int ver = e[i];if (ver == fa)continue;son++;dfs1(ver, x);}if (son == 0 || colour[x] == 0) {if (colour[fa] != 0 || fa == 0) {flag = true;return;}colour[x] = colour[fa] = ++cnt;}}static int[] clo = new int[N];static void dfs2(int x, int fa) {for (int i = h[x]; i != -1; i = ne[i]) {int ver = e[i];if (ver == fa)continue;if (colour[ver] == colour[x])clo[ver] = clo[x];elseclo[ver] = clo[x] ^ 1;dfs2(ver, x);}}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);n = scanner.nextInt();Arrays.fill(h, -1);for (int i = 1; i < n; i++) {int x = scanner.nextInt();int y = scanner.nextInt();add(x, y);}dfs1(1, 0);if (flag) {System.out.println("-1");return;}dfs2(1, 0);for (int i = 1; i <= n; i++)System.out.print(clo[i] != 0 ? "B" : "R");}
}
总结
ACM
模式,大部分题目是从牛客题库、寒假训练营抽出来的,Dfs
、DP
、图论
、质数筛
的混合考察比较多,平时多练习多debug
ACM
注意罚时的重要性,考虑一些细节不对,提交报错则罚时严重。
拿到题目,先把题目全部扫一遍,不要一股脑只是做题,应该先把题目先过一遍,确定考点后,由易入难。
确保会的都写对,不会的尝试一下,多debug
相关文章:
2023年第六届传智杯程序设计挑战赛(个人赛)B组 赛后复盘
传智杯赛后复盘 大家好 我是寸铁👊 2023年第六届传智杯程序设计挑战赛(个人赛)B组 赛后复盘 喜欢的小伙伴可以点点关注 💝 1. 字符串拼接 细节:一定要清楚nextLine()和next()的区别 nextLine()是遇到回车会停下来 nex…...

C语言——深入理解指针(2)
目录 1. 数组名 2. 指针访问数组 3. 一维数组的传参(本质) 4. 冒泡排序 5. 二级指针 6. 指针数组(指针的数组) 7. 指针数组模拟二维数组 1. 数组名 在之前的代码中我们使用指针访问过数组的内容。 int arr[10] {1,2,3,4…...
【已解决】HBase 2.2.6 集群部署后,从节点未启动 HRegionServer
问题发现 今天搭建了 HBase 2.2.6 集群环境,启动之后发现,从节点的 HRegionServer 未启动。多次对比参数设置仍然未发现异常。而启动之前的 HBase 2.4.11 则完成正常,我就有点怀疑是不是 HBase 2.2.6 集群搭建有什么特殊的地方? …...

JVM——垃圾回收(方法区中的垃圾回收和(堆回收)自动垃圾回收)
目录 1.自动垃圾回收介绍1.C/C的内存管理2.Java的内存管理3.垃圾回收的对比 2.方法区的回收方法区的回收 – 手动触发回收 3.堆回收1.引用计数法2.可达性分析算法 1.自动垃圾回收介绍 1.C/C的内存管理 ⚫ 在C/C这类没有自动垃圾回收机制的语言中,一个对象如果不再…...

Flink 常用物理分区算子(Physical Partitioning)
Flink 物理分区算子(Physical Partitioning) 在Flink中,常见的物理分区策略有:随机分配(Random)、轮询分配(Round-Robin)、重缩放(Rescale)和广播(Broadcast)。 接下来,我们通过源码和Demo分别了解每种物理分区算子的作用和区别。 (1) 随机…...
Leetcode.560 和为 K 的子数组
题目链接 Leetcode.560 和为 K 的子数组 mid 题目描述 给你一个整数数组 n u m s nums nums 和一个整数 k k k ,请你统计并返回 该数组中和为 k k k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,1,1]…...

linklab phase1 更简单的方法
直接反汇编phase1.o,看eax中是0x21,0x21在数据域中,直接把从第21个字节的内容改为0000000000即可。...

8.前端--CSS-文本属性【2023.11.26】
CSS Text(文本)属性可定义文本的外观,比如文本的颜色、对齐文本、修饰文本、文本缩进、行间距等 1.文本颜色 color 属性用于定义文本的颜色。 语法: div { color: red; }属性: 2.文本对齐 text-align 属性用于设置元…...

容器技术——Cgroup
目录 容器技术容器技术概述要区分好共享与隔离的概念容器技术的三大核心容器对比虚拟机 namespaceUnionFs容器操作系统的来源操作系统的来源完整操作系统的镜像docker image是什么?如何构成的 如何为容器安装操作系统UnionFS(联合文件系统)的…...
uniapp+vue3路由跳转传参
在uni-app中使用Vue 3进行路由跳转传参,可以通过以下步骤实现: 1.在router文件夹中创建一个名为index.js的文件,用于配置路由。在这个文件中,我们将导入createRouter和createWebHistory函数,并定义路由规则。同时&…...
流量主如何在广告收益和用户体验中找到平衡
流量主在广告收益和用户体验之间找到平衡是一个关键的挑战,因为过多或不恰当的广告可能会影响到用户的满意度和留存率。以下是一些方法,可以帮助流量主在这两者之间找到平衡: admaoyan猫眼聚合 优质内容为先: 提供高质量、有价值的…...

RPC和HTTP的区别
目录 1、RPC是什么 1.1 概念 1.2 RPC的组成部分 1.3 常见的 RPC 技术和框架 1.4 RPC的工作流程 2、HTTP是什么 2.1 概念 2.2 HTTP的消息格式 2.3 HTTP响应状态码有哪些 3、⭐RPC和HTTP的区别 小结 1、RPC是什么 1.1 概念 RPC(Remote Procedure Call&am…...

Dubbo3使用Zookeeper作为注册中心的方案讨论!详解DubboAdmin与PrettyZoo来监控服务的优劣!
文章目录 一:Dubbo注册中心的基本使用 二:Zookeeper注册中心的使用 1:依赖引入 2:实际开发 三:Zookeeper作为注册中心的使用展示 1:启动注册Zookeeper服务 2:引入注册中心 (一)…...
前端uni微信小程序和后端nodejs使用websoket
需求 前端向后台服务器发请求获取验证码,然后端游输入验证码,向我的后端发请求获取验证信息。后台给游戏端返回信息的时候同时给微信小程序端返回验证结果。意思是不要微信小程序端主动触发,验证是否绑定的请求。 思路 后端生成验证码时存…...

java小游戏之【王者荣耀】
首先创建一个新的Java项目命名为“王者荣耀”,并在src下创建两个包分别命名为“com.sxt"、”com.stx.beast",在相应的包中创建所需的类。 代码 package com.sxt;import javax.swing.*; import java.awt.*;public class Background extends GameObject {p…...

QT网络协议知识体系(一)
//获取主机的名称和ip地址 //获取主机的所有信息...

【数据库】表的连接在执行时的算法解析,嵌套循环连接算法的几种实现,多表连接中表的数量会影响什么
嵌套循环连接 专栏内容: 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更新…...
【刷新:重新发现商业与未来】书笔记
收获 同理心:站在他人角度考虑他人感受,他人需要什么,我能提供什么;他人可以是员工,家人等;对于员工来讲核心四件事:1、薪水;2、有结果;3、有成长;4、工作开…...
Lua实现面向对象三大特性
面向对象是基于table实现的 封装 :(冒号) 自动将调用该函数的对象作为第一个参数传入 --Object就是第一参数 function Object:new() self:代表默认传入的第一个参数 _index:当自己的变量中找不到时,会默认找原表中_index指向的内容 Obj…...

竞赛python区块链实现 - proof of work工作量证明共识算法
文章目录 0 前言1 区块链基础1.1 比特币内部结构1.2 实现的区块链数据结构1.3 注意点1.4 区块链的核心-工作量证明算法1.4.1 拜占庭将军问题1.4.2 解决办法1.4.3 代码实现 2 快速实现一个区块链2.1 什么是区块链2.2 一个完整的快包含什么2.3 什么是挖矿2.4 工作量证明算法&…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...

定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...

SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...

嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...