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 ;
}

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

1941. Scary Martian Word的更多相关文章

  1. 哈希URAL 1941 - Scary Martian Word

    A - Scary Martian Word Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I ...

  2. Codeforces 149 E. Martian Strings

    正反两遍扩展KMP,维护公共长度为L时.出如今最左边和最右边的位置. . .. 然后枚举推断... E. Martian Strings time limit per test 2 seconds m ...

  3. xtu summer individual-4 D - Martian Strings

    Martian Strings Time Limit: 2000ms Memory Limit: 262144KB This problem will be judged on CodeForces. ...

  4. Word/Excel 在线预览

    前言 近日项目中做到一个功能,需要上传附件后能够在线预览.之前也没做过这类似的,于是乎就查找了相关资料,.net实现Office文件预览大概有这几种方式: ① 使用Microsoft的Office组件 ...

  5. C#中5步完成word文档打印的方法

    在日常工作中,我们可能常常需要打印各种文件资料,比如word文档.对于编程员,应用程序中文档的打印是一项非常重要的功能,也一直是一个非常复杂的工作.特别是提到Web打印,这的确会很棘手.一般如果要想选 ...

  6. C# 给word文档添加水印

    和PDF一样,在word中,水印也分为图片水印和文本水印,给文档添加图片水印可以使文档变得更为美观,更具有吸引力.文本水印则可以保护文档,提醒别人该文档是受版权保护的,不能随意抄袭.前面我分享了如何给 ...

  7. 获取打开的Word文档

    using Word = Microsoft.Office.Interop.Word; int _getApplicationErrorCount=0; bool _isMsOffice = true ...

  8. How to accept Track changes in Microsoft Word 2010?

    "Track changes" is wonderful and remarkable tool of Microsoft Word 2010. The feature allow ...

  9. C#将Word转换成PDF方法总结(基于Office和WPS两种方案)

    有时候,我们需要在线上预览word文档,当然我们可以用NPOI抽出Word中的文字和表格,然后显示到网页上面,但是这样会丢失掉Word中原有的格式和图片.一个比较好的办法就是将word转换成pdf,然 ...

随机推荐

  1. 高级UNIX环境编程3 FILE IO

    POSIX中,STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO 对应0,1,2 每个打开的文件都有一个与其想关联的 "current file offset& ...

  2. Qt setStyleSheet 添加背景色/背景图片(取消背景色,读取本地文件作为背景色)

    容易搞定,mainWindow 是一个QWidget.// 设置背景色为蓝色mainWindow.setStyleSheet("background-color:blue;"); ...

  3. Surround the Trees(凸包求周长)

    Surround the Trees Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  4. 在web page中使鼠标右击失效的几种方法

    这里主要介绍两种方法,一种是使用js来处理,还有一种是在html属性中设置. 方法一:js 1: <script language="javascript"> docu ...

  5. [ArcGIS必打补丁]ArcGIS 10.1 SP1 for (Desktop, Engine, Server) Quality Improvement Patch

    大家都知道假设希望保证企业级GIS系统的稳定执行,除了使用最新的ArcGIS版本号产品以外,还须要打上相关的补丁. 补丁分为:Service Pack和Patch 比如,假设你使用的ArcGIS10. ...

  6. Activity的onSaveInstanceState()和onRestoreInstanceState()以及API详解

    为了弄清楚onSaveInstanceState()方法和onRestoreInstanceState()方法,我翻译一下谷歌的API,翻译如下: There are a few scenarios ...

  7. BZOJ 3236: [Ahoi2013]作业( 莫队 + BIT )

    莫队..用两个树状数组计算.时间复杂度应该是O(N1.5logN). 估计我是写残了...跑得很慢... ----------------------------------------------- ...

  8. ListView判断滑动底部

    通过实现OnScrollListener这个接口,然后复写 public abstract void onScroll (AbsListView view, int firstVisibleItem, ...

  9. C语言循环剖析(转载)

    一.if.else float变量与“零值”进行比较: float fTestVal = 0.0; if((fTestVal >= -EPSINON) && (fTestVal ...

  10. POJ 3624 01背包

    初学DP,用贪心的思想想解题,可是想了一个多小时还是想不出. //在max中的两个参数f[k], 和f[k-weight[i]]+value[i]都是表示在背包容量为k时的最大价值 //f[k]是这个 ...