16.1112 模拟考试 T1
加密
【问题描述】
有一种不讲道理的加密方法是: 在字符串的任意位置随机插入字符。 相应的,
不讲道理的解密方法就是从字符串中恰好删去随机插入的那些字符。
给定原文s和加密后的字符串t,求?有多少子串可以通过解密得到原文s。
【输入格式】
输入第一行包含一个字符串t,第二行包含一个字符串s。
【输出格式】
输出一行,包含一个整数,代表可以通过解密得到原文的s的子串的数量。
【样例输入】
abcabcabc
cba
【样例输出】
9
【样例解释】
用[?,?]表示子串开头结尾的下标(从 0 开始编号) ,这 9 种方案是:
[0,6],[0,7],[0,8],[1,6],[1,7],[1,8],[2,6],[2,7],[2,8]
【数据规模和约定】
30%的数据,|?| 1000。
对于100%的数据,1 ≤ |t| ≤ 300,000,1 ≤ s ≤ 200。
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
long long ans;
const int N = , M = ;
char S[N], T[M];
int n, m, f[M];
int main() {
freopen("encrypt.in", "r", stdin);
freopen("encrypt.out", "w", stdout);
scanf("%s%s", S + , T + );
n = strlen(S + ), m = strlen(T + );
for (int i = ; i <= n; ++i) {
f[] = i;
for (int j = m; j; --j)
if (S[i] == T[j]) f[j] = f[j - ];
ans += f[m];
}
printf("%I64d\n", ans);
return ;
}
#include <cstdio>
#include <cstring>
#include <iostream>
#include <string>
using namespace std;
typedef long long ll;
const int N = (int)3e5 + ;
const int M = ;
char a[N + ], b[M + ];
int n, m, p[M + ];
inline bool move(int x, int l) {
for (; l < n && a[l] != b[x]; ++l) ;
p[x] = l;
return l < n;
}
inline ll move() {
int pos = p[];
if (!move(, p[] + )) return 0LL;
for (int i = ; i < m; ++i)
if (!move(i, p[i - ] + )) return 0LL;
return (ll)(p[] - pos) * (n - p[m - ]);
}
int main(int argc, char *argv[]) {
freopen("encrypt.in", "r", stdin);
freopen("encrypt.out", "w", stdout);
scanf("%s%s", a, b);
n = strlen(a), m = strlen(b);
ll ans = 0LL, cur;
p[] = -;
while (cur = move())
ans += cur;
cout << ans << endl;
fclose(stdin);
fclose(stdout);
return ;
}
思路:我不会,大神求解救~~%%%%%%%%%%%%%%%%%%
付数据~ 提取密码:xvha
16.1112 模拟考试 T1的更多相关文章
- 16.1114 模拟考试T1
1.正确答案 [题目描述] 小H与小Y刚刚参加完UOIP外卡组的初赛,就迫不及待的跑出考场对答案. “吔,我的答案和你都不一样!”,小Y说道,”我们去找神犇们问答案吧”. 外卡组试卷中共有m道判断题, ...
- 16.1113 模拟考试T1
笔记[问题描述]给定一个长度为m的序列a,下标编号为1~m.序列的每个元素都是1~N的整数.定义序列的代价为累加(1->m-1 abs(ai+1-ai))你现在可以选择两个数x和y,并将序列?中 ...
- 16.1113 模拟考试T2
测试题 #4 括号括号[问题描述]有一个长度为?的括号序列,以及?种不同的括号.序列的每个位置上是哪种括号是随机的,并且已知每个位置上出现每种左右括号的概率.求整个序列是一个合法的括号序列的概率.我们 ...
- 16.1113 模拟考试T3
城堡[问题描述]给定一张N个点M条边的无向连通图,每条边有边权.我们需要从M条边中选出N − 1条, 构成一棵树. 记原图中从 1 号点到每个节点的最短路径长度为?Di ,树中从 1 号点到每个节点的 ...
- 【2019.7.16 NOIP模拟赛 T1】洗牌(shuffle)(找环)
找环 考虑每次洗牌其实是一次置换的过程,而这样必然就会有循环出现. 因此我们直接通过枚举找出每一个循环,询问时只要找到环上对应的位置就可以了. 貌似比我比赛时被卡成\(30\)分的倍增简单多了? 代码 ...
- 10.16 NOIP模拟赛
目录 2018.10.16 NOIP模拟赛 A 购物shop B 期望exp(DP 期望 按位计算) C 魔法迷宫maze(状压 暴力) 考试代码 C 2018.10.16 NOIP模拟赛 时间:2h ...
- 驾照理论模拟考试系统Android源码下载
驾照理论模拟考试系统Android源码下载 <ignore_js_op> 9.png (55.77 KB, 下载次数: 0) <ignore_js_op> 10.png ...
- RHCE模拟考试
真实考试环境说明: 你考试所用的真实物理机器会使用普通账号自动登陆,登陆后,桌面会有两个虚拟主机图标,分别是system1和system2.所有的考试操作都是在system1和system2上完成.S ...
- 【2018.06.26NOIP模拟】T1纪念碑square 【线段树】*
[2018.06.26NOIP模拟]T1纪念碑square 题目描述 2034年,纪念中学决定修建校庆100周年纪念碑,作为杰出校友的你被找了过来,帮校方确定纪念碑的选址. 纪念中学的土地可以看作是一 ...
随机推荐
- DRM 简介
首先,我们对和DRM 相关的一些概念进行介绍. Buffer: 对于RAC 数据库,当一个数据块被读入到buffer cache后,我们就称其为buffer , cache fusion 会将这个bu ...
- Hopfield 网络(下)
讲的什么 这部分主要讲离散的 Hopfield 网络权值的计算方法,以及网络记忆容量.主要参考了网上搜到的一些相关 PPT. DHNN 的训练方法 常见的学习方法中有海布法,还有 \(\delta ...
- ubuntu 升级到5.1kernel,打开bbr
apt-get -f install wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.1/linux-headers-5.1.0-0 ...
- SSH中的jar包讲解
我们在搭建SSH框架的时候,需要引入各自的一些jar包 首先,先来看一下我们使用的SSH的各自版本及引入的jar包. struts2.3.1.2: struts2-core-2.3.1.jar j ...
- jQuery中Ajax事件beforesend及各参数含义
Ajax会触发很多事件. 有两种事件,一种是局部事件,一种是全局事件: 局部事件:通过$.ajax来调用并且分配. $.ajax({ beforeSend: function(){ // Handle ...
- ios retain copy assign相关
assign: 简单赋值,不更改索引计数copy: 建立一个索引计数为1的对象,然后释放旧对象retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1 Copy其实是建立了一 ...
- ios之UISlider
初始化一个Slider UISlider *slider = [[UISlider alloc]initWithFrame:CGRectMake(0, 400,320 , 20)]; 滑块是一个标 ...
- Linux rm删除文件未释放空间问题分析
问题描述: 在自己的虚拟机上做实验时出现空间不足情况,检查发现之前的kafka集群测试日志在几天写了 25G,于是进入 /data/kafka01/logs 目录执行 “rm -rf *” 删除所有测 ...
- GIMP的Path的import和export
点击Path栏中的小三角,选择Paths Menu,然后点击Export Path Import Path自然不必多说:
- Django 开发调试工具:Django-debug-toolbar
介绍 django-debug-toolbar 是一组可配置的面板,可显示有关当前请求/响应的各种调试信息,并在单击时显示有关面板内容的更多详细信息. github地址 文档地址 安装 pip3 in ...