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

E. Unpleasant Strings【Educational Codeforces Round 178 (Rated for Div. 2)】

E. Unpleasant Strings

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

思路:

最蠢的一集,被这个题卡了,赛后发现非常简单。
用一个大小为maxn*26的数组预处理存每个位置后面每个字母第一次出现的位置。
然后会发现往后的最少增加数只跟增加开始位置有关,用dp[i]存从i位置开始的最少添加数,倒着转移一轮
然后对于每个查询,先匹配子串找到开始的位置p,然后输出dp[p]即可
时间复杂度 O ( n k + ∑ ∣ t i ∣ ) \mathcal{O}(nk + \sum{|t_i|}) O(nk+ti).
具体见代码

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl '\n'
#define int long long
#define pb push_back
#define pii pair<int,int>
#define FU(i, a, b) for(int i = (a); i <= (b); ++ i)
#define FD(i, a, b) for(int i = (a); i >= (b); -- i)
const int MOD = 1e9+7;
const int INF = 0x3f3f3f3f;
const int maxn= 1e6+5,MAXN = maxn;int a[maxn];
int f[maxn][26]; //0-25
int nf[26];
int dp[maxn]; 
void solve() {int n,k; // 0- k-1cin>>n>>k;FU(i,1,n){char c;cin>>c;a[i]=c-'a';}for(int j=0;j<k;j++)nf[j]=maxn;FD(i,n,0){for(int j=0;j<k;j++){f[i][j]=nf[j];}if(i==0)break;nf[a[i]]=i;}memset(dp,0,sizeof(dp));dp[maxn]=0;for(int i=n;i>=1;i--){int maxp=0;for(int j=0;j<k;j++){if(f[i][j]>maxp){maxp=f[i][j];}}dp[i]=dp[maxp]+1;}int Q;cin>>Q;while(Q--){string s;cin>>s;int now=0;for(int i=0;i<s.size();i++){int t=s[i]-'a';now = f[now][t];if(now==maxn){break;}}if(now==maxn){cout<<"0\n";continue;}cout<<dp[now]<<endl;;}}	signed main() {
#ifdef ONLINE_JUDGE
#elsefreopen("../in.txt", "r", stdin);
#endifcin.tie(0)->ios::sync_with_stdio(0);int T = 1;// cin >> T;while (T--) {solve();}return 0;
}	
http://www.dtcms.com/a/166245.html

相关文章:

  • SpringAI实现AI应用-搭建知识库
  • 核心技能:ArcGIS洪水灾害普查、风险评估及淹没制图
  • 【数学建模国奖速成系列】优秀论文绘图复现代码(三)
  • X²+1素数素数
  • 《Python实战进阶》 No46:CPython的GIL与多线程优化
  • 直播美颜SDK是什么?跨平台美颜SDK开发与接入全解析
  • errorno 和WSAGetlasterror的区别
  • Java写数据结构:队列
  • [CPCTF 2025] Crypto
  • 西门子PLC S7-1200电动机软启动、软停止的控制实例
  • nvm for windows 安装低版本 node 丢失 npm 安装
  • Kubernetes Ingress 深度解析
  • Java @Transactional事物隔离级别和默认值详解
  • 【模型量化】量化基础
  • 如何禁止AutoCAD这类软件联网
  • DeepSeek-Prover-V2-671B:数学推理的大模型新力量
  • OpenCV 图形API(76)图像与通道拼接函数-----对输入图像进行归一化操作函数normalize()
  • 防止HTTPS页面通过<iframe>标签嵌入HTTP内容
  • 使用Kestrel Web 服务器部署.net6项目
  • 第四部分:赋予网页健壮的灵魂 —— TypeScript(中)
  • 高等数学-第七版-下册 选做记录 习题9-6
  • 【JavaEE】网络原理之初识(1.0)
  • PH热榜 | 2025-04-30
  • AI与无人零售:如何通过智能化技术提升消费者体验和运营效率?
  • 写劳动节前的 跨系统 文件传输
  • ArrayList的特点及应用场景
  • 【计算机视觉】图像分割:Segment Anything (SAM):通用图像分割的范式革命
  • 【Linux】Linux 系统中,定时任务(计划任务)
  • 代码随想录算法训练营第三十一天
  • 一种导弹追踪算法的MATLAB仿真实现