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 工作量证明算法&…...
DeepMosaics与同类工具对比:为什么它是最佳选择
DeepMosaics与同类工具对比:为什么它是最佳选择 【免费下载链接】DeepMosaics Automatically remove the mosaics in images and videos, or add mosaics to them. 项目地址: https://gitcode.com/gh_mirrors/de/DeepMosaics DeepMosaics是一款功能强大的开源…...
3个高级技巧:用ComfyUI Manager彻底改变你的AI绘画工作流
3个高级技巧:用ComfyUI Manager彻底改变你的AI绘画工作流 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various cu…...
Python网易云音乐下载终极指南:3步轻松保存高品质音乐库
Python网易云音乐下载终极指南:3步轻松保存高品质音乐库 【免费下载链接】netease-cloud-music-dl Netease cloud music song downloader, with full ID3 metadata, eg: front cover image, artist name, album name, song title and so on. 项目地址: https://gi…...
技术管理中的目标设定与绩效评估
技术管理中的目标设定与绩效评估:驱动团队高效创新的核心 在快速发展的技术领域,目标设定与绩效评估是管理团队、推动创新的关键工具。明确的目标能够为技术团队提供方向,而科学的绩效评估则能确保资源高效利用,激发成员潜力。无…...
厦门数据安全企业哪家专业
在数字化转型的浪潮中,企业数据安全已成为不可忽视的重要议题。厦门作为东南沿海重要的经济中心,聚集了一批专业的数据安全服务企业。本文将为您介绍一家在数据安全领域具有深厚技术积累和丰富实战经验的企业——福建安鲲网络科技有限公司。企业概况福建…...
5大方法实现Alienware灯光、风扇与电源的深度个性化控制
5大方法实现Alienware灯光、风扇与电源的深度个性化控制 【免费下载链接】alienfx-tools Alienware systems lights, fans, and power control tools and apps 项目地址: https://gitcode.com/gh_mirrors/al/alienfx-tools Alienware设备用户常面临原厂软件功能受限、个…...
Local SDXL-Turbo实时绘画:打字即出图,5分钟搭建你的AI画室
Local SDXL-Turbo实时绘画:打字即出图,5分钟搭建你的AI画室 你有没有过这样的体验?脑子里闪过一个绝妙的画面,赶紧打开AI绘画工具,输入描述,然后就是漫长的等待——看着进度条一点点爬,灵感却在…...
营销自动化数据驱动 - 多源数据 OLAP 架构演进墙
1. 流图:数据的河流 如果把传统的堆叠面积图想象成一块块整齐堆叠的积木,那么流图就像一条蜿蜒流淌的河流,河道的宽窄变化自然流畅,波峰波谷过渡平滑。 它特别适合展示多个类别数据随时间的变化趋势,尤其是当你想强调整…...
vis跨平台部署指南:在Linux、macOS和BSD系统上的安装与配置终极教程
vis跨平台部署指南:在Linux、macOS和BSD系统上的安装与配置终极教程 【免费下载链接】vis A vi-like editor based on Plan 9s structural regular expressions 项目地址: https://gitcode.com/gh_mirrors/vis/vis vis是一款基于Plan 9结构化正则表达式的类v…...
ArcGIS密度分析实战:从点、线到核密度的全流程解析
1. 密度分析基础:从概念到应用场景 密度分析是地理信息系统中最常用的空间分析工具之一,它能够将离散的点、线要素转化为连续的密度表面,直观展现空间分布特征。我第一次接触密度分析是在做一个城市商业网点布局项目时,当时需要分…...
