http://codeforces.com/contest/368/problem/C

从左向右记录从1位置到每一个位置上x,y,z的个数。然后判断在l,r区间内的x,y,z的关系满不满足abs(x-y)<=1&&abs(x-z)<=1&&abs(y-z)<=1,满足输出YES,否则输出NO。

  1. #include <cstdio>
  2. #include <cstring>
  3. #include <algorithm>
  4. #define maxn 200000
  5. using namespace std;
  6.  
  7. char str[maxn];
  8. int hx[maxn],hy[maxn],hz[maxn];
  9. int m;
  10. int l,r;
  11.  
  12. int main()
  13. {
  14. while(scanf("%s",str)!=EOF)
  15. {
  16. int t1=,t2=,t3=;
  17. memset(hx,,sizeof(hx));
  18. memset(hy,,sizeof(hy));
  19. memset(hz,,sizeof(hz));
  20. int len=strlen(str);
  21. for(int i=; i<len; i++)
  22. {
  23. if(str[i]=='x')
  24. {
  25. t1++;
  26. hx[i+]=t1;
  27. hy[i+]=t2;
  28. hz[i+]=t3;
  29. }
  30. else if(str[i]=='y')
  31. {
  32. t2++;
  33. hx[i+]=t1;
  34. hy[i+]=t2;
  35. hz[i+]=t3;
  36. }
  37. else if(str[i]=='z')
  38. {
  39. t3++;
  40. hx[i+]=t1;
  41. hy[i+]=t2;
  42. hz[i+]=t3;
  43. }
  44. }
  45. scanf("%d",&m);
  46. for(int i=; i<=m; i++)
  47. {
  48. scanf("%d%d",&l,&r);
  49. int len=r-l+;
  50. if(len<)
  51. {
  52. printf("YES\n");
  53. continue;
  54. }
  55. else
  56. {
  57. int x=hx[r]-hx[l-];
  58. int y=hy[r]-hy[l-];
  59. int z=hz[r]-hz[l-];
  60. if(abs(x-y)<=&&abs(x-z)<=&&abs(y-z)<=)
  61. {
  62. printf("YES\n");
  63. }
  64. else printf("NO\n");
  65. }
  66. }
  67. }
  68. return ;
  69. }

cf C. Sereja and Algorithm的更多相关文章

  1. Codeforces Round #215 (Div. 2) C. Sereja and Algorithm

    #include <iostream> #include <vector> #include <algorithm> #include <string> ...

  2. cf D. Sereja ans Anagrams

    http://codeforces.com/contest/368/problem/D #include <cstdio> #include <cstring> #includ ...

  3. cf B. Sereja and Suffixes

    http://codeforces.com/contest/368/problem/B 从后往前找一遍就可以. #include <cstdio> #include <cstring ...

  4. CF 314C Sereja and Subsequences(树状数组)

    题目链接:http://codeforces.com/problemset/problem/314/C 题意:给定一个数列a.(1)写出a的不同的所有非下降子列:(2)定义某个子列的f值为数列中各个数 ...

  5. 【CF】Sereja and Arcs

    #include <bits/stdc++.h> #define llong long long using namespace std; const int N = 1e5; const ...

  6. Android 签名比较

    一. keytool -list -printcert -jarfile "%filename%" 二. 非常low方法:下载的应用安装能成功覆盖原应用则签名一致三. 作者:陈子腾 ...

  7. Codeforces 367

    A. Sereja and Algorithm 水题不解释. B. Sereja ans Anagrams 模p同余的为一组,随便搞. C. Sereja and the Arrangement of ...

  8. Codeforces Round #215 (Div. 1)

    A Sereja and Algorithm 题意:给定有x,y,z组成的字符串,每次询问某一段s[l, r]能否变成变成zyxzyx的循环体. 分析: 分析每一段x,y,z数目是否满足构成循环体,当 ...

  9. 如何判断 Android 应用的 Apk 签名是否一致?

    可以比对apk签名的fingerprint. 假定安装了JDK,如果想查HelloWorld.apk所使用的签名的fingerprint,可以这样做: 1. 查找apk里的rsa文件 (Windows ...

随机推荐

  1. 组合索引leaf 数据存储

    1 Z 2 X 3 U 4 T 5 G 6 F 7 C 8 B 9 A 1 A 2 B 3 C 4 D Oracle的索引是以平衡树的方式组织存储的:保存的是索引列的值,以及该行的rowid的一部分( ...

  2. HDOJ 1282 回文数猜想(回文串类)

    Problem Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数.任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其 ...

  3. vb安装过程中 ntvdm.exe[9696]中发生未处理的win32异常

    最近电脑总是出问题导致我的学习效率很低,前几天在用VB6.0的时候有个知识点不太熟悉,于是按F1发现不会出来帮助文档.突然想到重新装系统之后忘记了安装MSDN帮助插件,就在我安装这个软件的时候发现电脑 ...

  4. javascript算法挑战

    1.翻转字符串算法挑战: 先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串. 你的结果必须得是一个字符串 function reverseString(str) ...

  5. ajax弹出窗口

    提取自ZCMS的弹出框: 代替window.open.window.alert.window.confirm:提供良好的用户体验: 水晶质感,设计细腻,外观漂亮: 兼容ie6/7/8.firefox2 ...

  6. P2P/WSN信任建模与仿真平台

    1.ART Testbed 该平台是基于多代理的信任仿真平台,官网的介绍如下: The Agent Reputation and Trust (ART) Testbed initiative has ...

  7. 将apk文件添加到Android模拟器(AVD)中运行

    apk不同exe和jar文件,apk需要在安卓系统中运行,单有一个apk文件还是没用,不能直接拖进AVD中(当然可以直接放到安卓系统的手机中) 由于我们的eclipse大都是已经安装好,解压直接使用的 ...

  8. Http请求的 HttpURLConnection 和 HttpClient

    HTTP 请求方式: GET和POST的比较 请求包.png 例子.png 响应包.png 例子.png 请求头描述了客户端向服务器发送请求时使用的http协议类型,所使用的编码,以及发送内容的长度, ...

  9. NS2仿真:两个移动节点网络连接及协议性能分析

    NS2仿真实验报告2 实验名称:两个移动节点网络连接及协议性能分析 实验日期:2015年3月9日~2015年3月14日 实验报告日期:2015年3月15日 一.实验环境(网络平台,操作系统,网络拓扑图 ...

  10. HTML5 格式化、样式、链接、表格

    HTML格式化.样式.链接.表格的使用举例