Codeforces#103-C. Anagram Search-乱搞水题
来源:互联网 发布:万维网域名查询 编辑:程序博客网 时间:2024/05/12 06:11
http://codeforces.com/problemset/problem/144/C
定义: S的“乱序串” ,就是 一个串P经过任意排列和 ,能变成串S(完全匹配)
给一个串S,(字母和?) 问号表示任意字母
给一个P(只有字母)
问你S串的所有子串里,有多少个子串可以是P的乱序串。
直接for一遍 on,
预处理 P的所有字母 到vis[26]
然后遍历S串,每遇到一个字母 把vis_s【】里面的数值更新,并更新变量marks(问号数量)
然后当子串长度与p相等的时候,判断是否和P完全相同(包含问号判断),就OK啦。
#include <cstdio>#include <cmath>#include <cstring>#include <string>#include <algorithm>#include <queue>#include <map>#include <set>#include <vector>#include <iostream>using namespace std;const double pi=acos(-1.0);double eps=0.000001; __int64 min(__int64 a,__int64 b){return a<b?a:b;} __int64 max(__int64 a,__int64 b){return a>b?a:b;} char s[100005],p[100005];int vis[28];int sss[28];int marks=0;int main(){int i,j;scanf("%s",s);scanf("%s",p);int lens=strlen(s);int lenp=strlen(p);if (lenp>lens){printf("0\n");return 0;}for (i=0;i<lenp;i++)vis[p[i]-'a']++;int ans=0;int cun=0;int st=0;for (i=0;i<lens;i++){cun++;if (s[i]=='?') marks++;elsesss[s[i]-'a']++;if (cun==lenp){int less=0;int flag=0;for (j=0;j<26;j++){if (vis[j]==sss[j]) continue;elseif (sss[j]<vis[j]) less+=vis[j]-sss[j];else {flag=1;break;}}if (!flag){if (less==0) ans++;else if (less==marks) ans++;}cun--;if (s[st]=='?') marks--;elsesss[s[st]-'a']--;st++;}}printf("%d\n",ans);}
0 0
- Codeforces#103-C. Anagram Search-乱搞水题
- CodeForces 144C Anagram Search
- Codeforces Round #103 (Div. 2)---C. Anagram Search
- Codeforces-144C-Anagram Search(思维)
- CodeForces 144C Anagram Search(思维)
- Anagram Search -- CodeForces
- CodeForces 144C Anagram Search(暴力模拟)
- 【codeforces 732C】 Sanatorium【乱搞题 数学题】
- Codeforces 675c 乱搞
- CodeForces-485C Bits(乱搞)
- Codeforces 557C Arthur and Table 乱搞题
- 乱搞 [CodeForces 348C] Subset Sums nsqrtn
- Codeforces 875C National Property 乱搞
- 【字符串+乱搞】Codeforces 762C Two strings
- codeforces 444C DZY Loves Colors 线段树乱搞
- Codeforces 34C-Page Numbers(set+vector+暴力乱搞)
- Codeforces Round #207 (Div. 2)---C. Knight Tournament(set乱搞)
- codeforces#331-C - Wilbur and Points-set/贪心乱搞
- HDU 5494 Card Game
- java四种内部类详解
- TI 的 smartconfig 分享
- 求最大公约数
- JAVA面试之二叉树问题
- Codeforces#103-C. Anagram Search-乱搞水题
- Atitti.java android反编译解决方案-----虚拟机方案
- 错误查漏记载
- HDU 5479 Scaena Felix
- 安装sql server 2008 r2 一直提示失败
- 错误: 找不到或无法加载主类 simple.Test
- #1032 : 最长回文子串
- 图像之二维高斯核
- 太乐了,sin cos