The 2022 Hangzhou Normal U Summer Trials
6 题
vp 排名 54/253
铜,现场排名22/152
银
感觉浙江省的 acm 强度继承了浙江 oi 强度还是很高的
1|0A. Hello, ACMer!
这题就是找到hznu
的个数
2|0B. New String
这题是给出一个排序,表示的字母的相对顺序。
把字符串转化然后在排序就好。
3|0C. Check Problems
有无穷多个问题和n个人,每个人会从个问题开始解决,每一秒只能解决一个问题,一个问题也只能没解决一次,问t秒后一共可以解决多少个问题。
从题目发现 是递增的,同时也是递增的。那么我们令那么当是时i个人解决了t个问题,当 时第i个人解决了个问题。这样的话对于每一个询问二分一下分界线的位子就可以的算出解决了多少问题。
4|0D. Tree Problem
给一个树,每次询问一个点,问树上有多少对点的简答路径经过了这个点。
对于每一个,我们把她当成树的根,那么他的任意一个子树中任意选择两个点,这两个点的简单路径都不经过这个点。
所以要统计出每一个点的每一个子树的大小,这个用一遍dfs就可以了。然后在套一些组合数就好了。
5|0E. Easy Problem
有AB两个人,他们每次都会向相同的地方移动,但是他们中的某个人遇到边界或者障碍是不会继续走的。问最少多少步他们就会相遇。
因为n很小,所以直接bfs就好了。然后加一点记忆化剪枝。
6|0F. Subarrays
这道题是原题1230. K倍区间。
令pre[i]
表示前缀和,如果[l,r]
的和是 k 的倍数,那么一定有pre[l+1]%k == pre[r]%k
,那么统计一下前缀和对 k 取余的结果就好。
7|0I. IHI's Homework
换一个思路来理解这道题,有n 个盒子和 s 个球,要把 s 个球放到盒子中,可以有球不放入任何一个盒子中。第 i 个盒子中的球不少于个,每一次会修改一个,问有多少种结果。
首先把每个盒子中放入个球,然后剩下 t 个球。可以把这 t 个球中的任意个放入 n 个盒子。
然后经典的球盒问题,n 个球无区别,m 个盒子有区别,允许有空盒,方案数是。
可以知道答案就是
可以发现对于相同的 t 他的答案是相同的,可以先预处理出阶乘和阶乘的逆元,这样就可以的计算组合数,然后在求一个前缀和,每次就可以的回答询问了
8|0H. Optimal Biking Strategy
这道题就是 DP ,f[i][j]
表示前i 个公交站花费 j 最少可以走多少步数,对于花费元至少可以走距离,所以通过二分找到在这个范围中最远的公交站即可
9|0J. IHI's Magic String
这道题如果正着坐会非常的麻烦因为每一次修改都是
所以考虑倒过来做。
如果把a
修改成b
那么在之后的添加中添加a
就可以直接用添加b
来替代。
用mp[i]
表示添加i
时应该添加mp[i]
,初始时候mp[i]=i
那么,如果先把b
修改成a
,在把c
修改成b
,实际上可以直接把c
改成a
。这样的话我们可以用类似并查集路径压缩的方式来解决这道题,就是mp[c] = mp[b]
。
剩余就是删除的问题,因为是倒过来做,删除一个其实就是下一次添加,这里用一个懒标记就好了。
__EOF__

本文链接:https://www.cnblogs.com/PHarr/p/16647878.html
关于博主:前OIer,SMUer
版权声明:CC BY-NC 4.0
声援博主:如果这篇文章对您有帮助,不妨给我点个赞
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)