当前位置: 首页 > news >正文

2025年暨南大学 ACM校赛分析与题解

文章目录

  • C.最长公共前缀
  • D.排列
  • H.回文串

  • 法不定法,在于因时因势
  • AC不了就是还得加练!

C.最长公共前缀

在这里插入图片描述

  • 字典树模版题目,不了解字典树的同学,可以看我的另一篇博客 算法 之 字典树
class Node:
# 和模版题目相似,但是多了一个记录到底有多少个字符串在当前的前缀相同,只需多使用一个num记录即可__slots__ = "son","end","num"def __init__(self):self.son = {}self.num = 0self.end = False
class tree:def __init__(self):self.root = Node()# 插入新单词,同时对比和先前的全部的字符串的前缀def insert(self,word):cur = self.rootans = 0for c in word:if c not in cur.son:cur.son[c] = Node()cur = cur.son[c]# 注意的是,由于我们是边创建边更新,所以是先更新ans,才去更新cur.numans += cur.numcur.num += 1cur.end = Truereturn ansn = int(input())
res = 0
t = tree()for _ in range(n):s = input()res += t.insert(s)print(res)

D.排列

在这里插入图片描述

  • 模拟问题,但是具体如何写清楚模拟,就是一个比较复杂的事情
  • 具体而言,需要使用到哈希表进行模拟交换,我们使用哈希表记录可交换的位置,值-位置对,对于是W并且当前的位置i的元素不是i当然是不可能调整到满足题意的,所以直接输出-1,对于可以通过交换的情况,我们只需从左到右,让i出现在i位置即可
t = int(input())for _ in range(t):n = int(input())a = [0] + list(map(int,input().split()))c = "R" + input()# store 存储的是元素a[i]的位置是istore = {}ans = 0flag = 0for i in range(1,n+1):if c[i] == "R":store[a[i]] = i else:if a[i] != i :flag = 1break if flag:print(-1)continue for i in range(1,n+1):# 由于是从左向右遍历,所以得让ic出现在位置i if i != a[i] :# 获取i的位置id1 = store[i]# 我们会把a[i]和i的位置互换,所以a[i]会被换到位置id1store[a[i]] = id1a[i],a[id1] = a[id1],a[i]ans += 1print(ans)

H.回文串

在这里插入图片描述

  • 其实就是不能出现连续的两个相同的字符
t = int(input())for _ in range(t):n = int(input())s = input()ans = 0for i in range(n-1):if s[i] == s[i+1]:ans += 1print(ans)

相关文章:

  • 数据结构顺序表的实现
  • react 报错
  • TortoiseGit 入门指南
  • [特殊字符] 深入理解Spring Cloud与微服务架构:全流程详解(含中间件分类与实战经验)
  • 什么是函数依赖中的 **自反律(Reflexivity)**、**增广律(Augmentation)** 和 **传递律(Transitivity)?
  • 大模型奖励建模新突破!Inference-Time Scaling for Generalist Reward Modeling
  • Python爬虫-爬取汽车之家各品牌月销量榜数据
  • Pygame终极项目:从零开发一个完整2D游戏
  • 一键快速转换音频视频格式的实用工具
  • Linux进程解析
  • Java操作数据库(JDBC)
  • C++异步并发支持库future
  • FPGA前瞻篇-组合逻辑电路设计-多路复用器
  • 云原生--核心组件-容器篇-3-Docker核心之-镜像
  • 我是如何用AI编程制作一个AI表情包生成的小程序
  • 大模型微调与蒸馏的差异性与相似性分析
  • (四) 实战Trae 编译调试C++项目(以minidocx为例)
  • 【学习】Codeforces Round 786 (Div. 3)G. Remove Directed Edges
  • strcmp()在C语言中怎么用(附带实例)
  • .NET8 依赖注入组件
  • 文旅部:推动离境退税购物便利化有利于更多国内优质商品走出去
  • 强政神鸟——故宫里的乌鸦
  • 长三角数智文化产业基金意向签约会成功举办
  • “80后”王建浩履新三沙市委常委、组织部部长、秘书长
  • 拉卡拉一季度净利约1亿降超五成,去年净利3.5亿降逾23%
  • 2025年两院院士增选工作启动,名额均不超过100名