2024.11.26模拟赛
1.2024.10.29模拟赛(*^▽^*)2.2024.10.31模拟赛(*^▽^*)3.2024.11.01模拟赛( — _ — )4.2024.11.02模拟赛( — _ — )5.2024.11.04( — _ — )6.2024.11.05模拟赛( — _ — )7.2024.11.14&2024.11.15模拟赛( — _ — )8.2024.11.16模拟赛(*^▽^*)9.2024.11.19模拟赛( — _ — )10.2024.11.21模拟赛(*^▽^*)11.2024.11.23模拟赛(*^▽^*)
12.2024.11.26模拟赛
13.2024.12.28模拟赛14.2025.01.04模拟赛15.2025.01.08 模拟赛昨天也打了模拟赛。但没补没总结。为什么呢。因为懒。
今天来了之后先犯困了一个坤小时。犯困的那两个半小时属于是连暴力都没法想怎么去写的那种。好不容易慢慢清醒了,又不想写了。随便打了个T3的暴力,又写了个T1的爆搜,结果爆搜炸了。
所以,今天昨天打的都很不怎么样。
结果考完之后,同学都说T3是去年提高组T3,我当时就是一个问号。
Ehhh Ah
T1【成绩】
期望 不会
T2【插旗】
题目大意:
解题思路:
考虑深搜过程。对于一个节点的子树,它的最长链的长度一定会产生贡献(因为搜到最深后还到下一条链,这个长度很重要)。而搜到最后一条链时,它需要从最底端再回溯到子树之外,所以这条链的长度也会产生贡献。贪心地想,为了使得
具体咋写?细节有什么?我不道啊,我没写
T3【括号序列加强版】
题目大意:
解题思路:
暴力这对于我这个蒟蒻来讲非常不友好www 。于是考虑设一维状态可恶我本来也向这个方向想了但没想出来 。
对于
现在考虑怎么求
因为
代码如下↓
int j=i-1;
while (j>0&&a[i]!=a[j]) j=lst[j]-1;
lst[i]=j;
长得很像KMP求
所以我们坚信它的时间复杂度和KMP的一样,均摊下来是
代码
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=3e5+5;
int n;
int a[N];
int lst[N];
int f[N];
int ans;
signed main()
{
scanf("%lld",&n);
for (int i=1;i<=n;i++) scanf("%lld",&a[i]);
for (int i=1;i<=n;i++)
{
int j=i-1;
while (j>0&&a[i]!=a[j]) j=lst[j]-1;
if (a[i]==a[j])
{
lst[i]=j;
f[i]=f[lst[i]-1]+1;
ans+=f[i];
}
}
printf("%lld",ans);
return 0;
}
Ehhh Ah
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】