1941. Scary Martian Word

这道题 一个长度为3的字符串视为 一个 火星文 字母(ASCII 33-122) ,给出一个火星人认为恐怖的单词(由火星字母组成)

然后 给你一篇文章问你火星人认为恐怖的单词个数(可以乱序)

嗯,一开始题意理解错了。。。然后就错了

彬神说……是双端队列

然后写了,感觉自己真是对对对的……

嗯,过度自信,起始忽略了一个条件。

做法,因为是三个单词 122+122*10+122*100 也就差不多了

然后哈希。数组标记,

懒得写了……

贴代码……

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <map>
#include <queue>
#include <stack>
#include <set>
#include <string>
#include <sstream>
using namespace std;
typedef long long ll;
const double ESP = 10e-;
const int MAXN = + ; int vis[MAXN];
int num[MAXN];
int arr[MAXN];
int n;
char word[MAXN*+];
int main(){
// freopen("input.txt","r",stdin); int ans = ;
memset(num,,sizeof(num));
n = ;
gets(word);
int len = strlen(word);
for(int i = ;i < len;i+=){
int tt = (word[i]-) + (word[i+]-)*+(word[i+]-)*;
num[tt]++;
if(num[tt] == ){
n++;
}
}
gets(word);
len = strlen(word);
memset(arr,-,sizeof(arr));
int cnt = ;
for(int i = ;i < len;i+=){
int tt = (word[i]-) + (word[i+]-)*+(word[i+]-)*;
if(num[tt]){
arr[cnt++] = tt;
}
}
int l = ;
int r = ;
memset(vis,,sizeof(vis));
int nn = ;
while(l < cnt && r < cnt){
if(arr[r] != -){
vis[ arr[r] ]++;
if(vis[arr[r]] == num[arr[r] ]){
nn++;
}else if(vis[ arr[r] ] > num[ arr[r] ]){
while(l < cnt && arr[l] != arr[r]){
if(vis[arr[l] ] == num[arr[l] ]){
nn--;
}
vis[ arr[l] ]--;
l++;
}
vis[ arr[l]]--;
l++;
}
if(nn == n){
ans++;
vis[arr[l]]--;
nn--;
l++;
}
r++;
}else{
nn = ;
memset(vis,,sizeof(vis));
r++;
l = r;
}
}
printf("%d\n",ans);
return ;
}

不写注释的果然不是好程序员……

最新文章

  1. You are attempting to run the 32-bit installer on a 64-bit version of Window
  2. CSS3 box-sizing
  3. 001.mysql安装(lnmp)
  4. C# 发送qq邮箱
  5. OneNote的配置
  6. hdu5442(2015长春赛区网络赛1006)后缀数组+KMP /最小表示法?
  7. iOS应用中URL地址如何重定向-b
  8. struts1与struts2的区别
  9. C语言之程序结构
  10. js 获取页面高度和宽度(兼容 ie firefox chrome),获取鼠标点击位置
  11. 认识IL代码---从开始到现在 &lt;第二篇&gt;
  12. C#、VB.NET 使用System.Media.SoundPlayer播放音乐
  13. 具体解释VMware 9.0.1安装MAC OS X 10.8(历时近3日感想篇)
  14. tableView区头不显示
  15. (转)Schema
  16. [BZOJ2503][HAOI2006]均分数据
  17. Flex 关于 keyDown事件的添加和移除(另附添加事件的执行带参数的函数)
  18. 深度理解DOM拷贝clone()
  19. vue获取当前对象
  20. 使用Disruptor实现生产者和消费者模型

热门文章

  1. BZOJ 1621: [Usaco2008 Open]Roads Around The Farm分岔路口
  2. 解题报告 HDU1159 Common Subsequence
  3. gdal库的三个使用心得
  4. IOS中使用像素位图(CGImageRef)对图片进行处理
  5. 关于在cocos2dx中继承Sprite的分析与技巧
  6. Android中activity保存数据和状态在哪个方法实现
  7. Google Code Jam Round 1A 2015 Problem B. Haircut 二分
  8. JS给元素增加className
  9. 带OpenSSL和MySQL的静态编译版本~
  10. WM_PAINT消息小结