传送门:BestCoder Round #88

分析:

A题统计字符串中连续字串全为q的个数,预处理以下或加个cnt就好了;

代码:

  1. #include <cstdio>
  2. #include <cstring>
  3. #include <cstdlib>
  4. #include <ctime>
  5. #include <cmath>
  6. #include <iostream>
  7. #include <algorithm>
  8. #include <string>
  9. #include <set>
  10. #include <map>
  11. #include <queue>
  12. #include <stack>
  13. #include <vector>
  14. #include <bitset>
  15. using namespace std;
  16.  
  17. #define ll long long
  18. #define F(i,a,b) for(int i=a;i<=b;++i)
  19. #define R(i,a,b) for(int i=a;i<b;++i)
  20. #define Rof(i,a,b) for (int i=(a),_##i=(b); i>=_##i; i--)
  21. #define rek(i,a,b) for (int i=(a),_##i=(b); i>=_##i; i--)
  22. #define mem(a,b) memset(a,b,sizeof(a))
  23. #define cpy(a,b) memcpy(a,b,sizeof(b))
  24. #pragma comment(linker, "/STACK:102400000,102400000")
  25. inline void read(int &x){x=; char ch=getchar();while(ch<'') ch=getchar();while(ch>=''){x=x*+ch-; ch=getchar();}}
  26. char s[];
  27. int t,cnt;
  28. ll sum;
  29. int main()
  30. {
  31. for(scanf("%d",&t);t--;)
  32. {
  33. scanf("%s",s);int len=strlen(s);cnt=sum=;
  34. for(int i=;i<len;++i) if(s[i]=='q') sum+=cnt,cnt++;else if(cnt) {sum+=cnt;cnt=;}
  35. if(cnt) sum+=cnt;
  36. printf("%lld\n",sum);
  37. }
  38. return ;
  39. }

B题求出一个数字串的所有完全阿贝尔周期;

  1. S是一个数字串,定义函数occ(S,x)occ(S,x)表示S中数字x的出现次数。
  2.  
  3. 例如:S=(1,2,2,1,3),occ(S,1)=2,occ(S,2)=2,occ(S,3)=1S=(1,2,2,1,3),occ(S,1)=2,occ(S,2)=2,occ(S,3)=1
  4.  
  5. 如果对于任意的i,都有occ(u,i)=occ(w,i)occ(u,i)=occ(w,i),那么我们认为数字串uw匹配。
  6.  
  7. 例如:(1,2,2,1,3)\approx(1,3,2,1,2)(1,2,2,1,3)≈(1,3,2,1,2)。
  8.  
  9. 对于一个数字串S和一个正整数k,如果SS可以分成若干个长度为k的连续子串,且这些子串两两匹配,那么我们称k是串S的一个完全阿贝尔周期。
  10.  
  11. 给定一个数字串S,请找出它所有的完全阿贝尔周期
  12.  
  13. 那么对于给定的n,从1-n枚举它的因子比如k,然后判断1-k是否与k+1~2*k2*k+1~3*k...(t*k<=n)匹配,这里要处理一下,详情见代码
  1. #include <cstdio>
  2. #include <cstring>
  3. #include <cstdlib>
  4. #include <ctime>
  5. #include <cmath>
  6. #include <iostream>
  7. #include <algorithm>
  8. #include <string>
  9. #include <set>
  10. #include <map>
  11. #include <queue>
  12. #include <stack>
  13. #include <vector>
  14. #include <bitset>
  15. using namespace std;
  16.  
  17. #define LL long long
  18. #define F(i,a,b) for(int i=a;i<=b;++i)
  19. #define R(i,a,b) for(int i=a;i<b;++i)
  20. #define Rof(i,a,b) for (int i=(a),_##i=(b); i>=_##i; i--)
  21. #define rek(i,a,b) for (int i=(a),_##i=(b); i>=_##i; i--)
  22. #define mem(a,b) memset(a,b,sizeof(a))
  23. #define cpy(a,b) memcpy(a,b,sizeof(b))
  24. #pragma comment(linker, "/STACK:102400000,102400000")
  25. inline void read(int &x){x=; char ch=getchar();while(ch<'') ch=getchar();while(ch>=''){x=x*+ch-; ch=getchar();}}
  26. int t,n,cnt,a[],b[],p[],p1[];
  27. int main()
  28. {
  29. for(scanf("%d",&t);t--;)
  30. {
  31. scanf("%d",&n);cnt=;
  32. F(i,,n) scanf("%d",a+i);
  33. for(int i=;i*i<=n;++i) if(n%i==)
  34. {
  35. for(int i=;i<=n;++i) p[i]=p1[i]=;
  36. int x=n/i;
  37. for(int j=;j<=i;++j) p[a[j]]++;
  38. for(int k=i*;k<=n;k+=i)
  39. {
  40. for(int j=k-i+;j<=k;j++) p1[a[j]]++;
  41. for(int j=;j<=i;++j) if(p[a[j]]*(k/i-)!=p1[a[j]]) goto l;
  42. }
  43. b[cnt++]=i;l:;
  44. for(int i=;i<=n;++i) p[i]=p1[i]=;
  45. for(int j=;j<=x;++j) p[a[j]]++;
  46. for(int k=x*;k<=n;k+=x)
  47. {
  48. for(int j=k-x+;j<=k;j++) p1[a[j]]++;
  49. for(int j=;j<=x;++j) if(p[a[j]]*(k/x-)!=p1[a[j]]) goto l1;
  50. }
  51. b[cnt++]=x;l1:;
  52. }
  53. sort(b,b+cnt);
  54. printf("%d",b[]);
  55. for(int i=;i<cnt;++i) if(b[i]!=b[i-])printf(" %d",b[i]);puts("");
  56. }
  57. return ;
  58. }
  1.  

BestCoder Round #88的更多相关文章

  1. HDU 5908 Abelian Period (BestCoder Round #88 模拟+暴力)

    HDU 5908 Abelian Period (BestCoder Round #88 模拟+暴力) 题目链接http://acm.hdu.edu.cn/showproblem.php?pid=59 ...

  2. bestcoder Round #7 前三题题解

    BestCoder Round #7 Start Time : 2014-08-31 19:00:00    End Time : 2014-08-31 21:00:00Contest Type : ...

  3. BestCoder Round #89 02单调队列优化dp

    1.BestCoder Round #89 2.总结:4个题,只能做A.B,全都靠hack上分.. 01  HDU 5944   水 1.题意:一个字符串,求有多少组字符y,r,x的下标能组成等比数列 ...

  4. BestCoder Round #90 //div all 大混战 一题滚粗 阶梯博弈,树状数组,高斯消元

    BestCoder Round #90 本次至少暴露出三个知识点爆炸.... A. zz题 按题意copy  Init函数 然后统计就ok B. 博弈 题  不懂  推了半天的SG.....  结果这 ...

  5. Bestcoder round #65 && hdu 5593 ZYB's Tree 树形dp

    Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submissio ...

  6. Bestcoder round #65 && hdu 5592 ZYB's Premutation 线段树

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submissio ...

  7. 暴力+降复杂度 BestCoder Round #39 1002 Mutiple

    题目传送门 /* 设一个b[]来保存每一个a[]的质因数的id,从后往前每一次更新质因数的id, 若没有,默认加0,nlogn复杂度: 我用暴力竟然水过去了:) */ #include <cst ...

  8. 贪心 BestCoder Round #39 1001 Delete

    题目传送门 /* 贪心水题:找出出现次数>1的次数和res,如果要减去的比res小,那么总的不同的数字tot不会少: 否则再在tot里减去多余的即为答案 用set容器也可以做,思路一样 */ # ...

  9. BestCoder Round #69 (div.2) Baby Ming and Weight lifting(hdu 5610)

    Baby Ming and Weight lifting Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K ( ...

随机推荐

  1. poj -3614 Sunscreen(贪心 + 优先队列)

    http://poj.org/problem?id=3614 有c头奶牛在沙滩上晒太阳,每头奶牛能忍受的阳光强度有一个最大值(max_spf) 和最小值(min_spf),奶牛有L种防晒霜,每种可以固 ...

  2. ViewState压缩技术

    ViewState 的使用,大家可以说是又爱又恨,它其中一个特性就是保存页面的状态,对于只是展示的页面,我们可以直接在页面文件中使用 EnableViewState="false" ...

  3. Hybris 预备知识学习列表

    需要学习的: Spring,Spring对于hybris非常重要,整个hybris是基于spring的架构之上. 包括例如spring mvc,spring security, 设计模式 软件构建工具 ...

  4. WinCE5.0中文模拟器SDK(VS2005)的配置

    WinCE5.0中文模拟器SDK的安装过程不细说了,一路默认即可,下面主要介绍如何配置,使其能在VS2005中正常使用. 安装完成后,打开VS2005,点击菜单“工具”——“选项”——“设备工具”—— ...

  5. 适用于Firemonkey的Json解析对象XsuperObject使用方法介绍

    XSuperObject是适用于FileMonkey平台的JSON解析组件,能够在Android,IOS,MACOS,WINDOWS等多个平台使用 点击下载 Sample JSON { "n ...

  6. 读取Properties文件工具类

    import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java ...

  7. jQuery1.9+中删除了live以后的替代方法

    .live() removed The .live() method has been deprecated since jQuery 1.7 and has been removed in 1.9. ...

  8. Balsamiq Mockups简单介绍(UI草图绘制工具)

    什么是Balsamiq Mockups Balsamiq Mockups出自加利福尼亚州的Balsamiq工作室,创始人Peldi在2008年6月推出了这款手绘风格的产品原型设计工具,并广受好评.2年 ...

  9. HDU 3389 (Nim博弈变形) Game

    参考了众巨巨的博客,现在重新整理一下自己的思路. 首先在纸上画了一下转移图: 1 3 4号盒子是不能够再转移卡片到其他盒子中去了的,其他盒子中的卡片经过若干步的转移最终也一定会转移到1 3 4号盒子中 ...

  10. HDU 1525 (博弈) Euclid's Game

    感觉这道题用PN大法好像不顶用了,可耻地看了题解. 考虑一下简单的必胜状态,某一个数是另一个数的倍数的时候是必胜状态. 从这个角度考虑一下:游戏进行了奇数步还是偶数步决定了哪一方赢. 如果b > ...