Find Q

Accepts: 392
Submissions: 780
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 262144/131072 K (Java/Others)

问题描述
Byteasar迷恋上了'q'这个字母。在他眼前有一个小写字母组成的字符串SSS,他想找出SSS的所有仅包含字母'q'的连续子串。但是这个字符串实在是太长了,你能写个程序帮助他吗?
输入描述
输入的第一行包含一个正整数T(1≤T≤10)T(1\leq T\leq10)T(1≤T≤10),表示测试数据的组数。 对于每组数据,包含一行一个小写字母组成字符串SSS,保证SSS的长度不超过100000100000100000。
输出描述
对于每组数据,输出一行一个整数,即仅包含字母'q'的连续子串的个数。
输入样例
2
qoder
quailtyqqq
输出样例
1
7

题解:尺取法直接上就好了,要注意数据范围 long long
#pragma comment(linker, "/STACK:1024000000,1024000000")
#include <bits/stdc++.h>
using namespace std;
typedef long long  LL;
const int N = 100005;
char str[N];
int main()
{freopen("a.txt","r",stdin);int tcase;scanf("%d",&tcase);while(tcase--){scanf("%s",str+1);int len = strlen(str+1);LL l = 1,r = 1;long long cnt = 0;while(l<=len){while(l<=len&&str[l]!='q') l++;r = l;while(r<=len&&str[r]=='q'){r++;}if(r>l){cnt+=(r-l)*(r-l+1)/2;}l = r;}printf("%lld\n",cnt);}return 0;
}

Abelian Period

Accepts: 288
Submissions: 984
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 262144/131072 K (Java/Others)

问题描述
设SSS是一个数字串,定义函数occ(S,x)occ(S,x)occ(S,x)表示SSS中数字xxx的出现次数。 例如: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)=1S=(1,2,2,1,3),occ(S,1)=2,occ(S,2)=2,occ(S,3)=1。 如果对于任意的iii,都有occ(u,i)=occ(w,i)occ(u,i)=occ(w,i)occ(u,i)=occ(w,i),那么我们认为数字串uuu和www匹配。 例如:(1,2,2,1,3)≈(1,3,2,1,2)(1,2,2,1,3)\approx(1,3,2,1,2)(1,2,2,1,3)≈(1,3,2,1,2)。 对于一个数字串SSS和一个正整数kkk,如果SSS可以分成若干个长度为kkk的连续子串,且这些子串两两匹配,那么我们称kkk是串SSS的一个完全阿贝尔周期。 给定一个数字串SSS,请找出它所有的完全阿贝尔周期。
输入描述
输入的第一行包含一个正整数T(1≤T≤10)T(1\leq T\leq10)T(1≤T≤10),表示测试数据的组数。 对于每组数据,第一行包含一个正整数n(n≤100000)n(n\leq 100000)n(n≤100000),表示数字串的长度。 第二行包含nnn个正整数S1,S2,S3,...,Sn(1≤Si≤n)S_1,S_2,S_3,...,S_n(1\leq S_i\leq n)S​1​​,S​2​​,S​3​​,...,S​n​​(1≤S​i​​≤n),表示这个数字串。
输出描述
对于每组数据,输出一行若干个整数,从小到大输出所有合法的kkk。
输入样例
2
6
5 4 4 4 5 4
8
6 5 6 5 6 5 5 6
输出样例
3 6
2 4 8

题解:保存异或前缀异或和 ,k一定是 n的因子,所以枚举的 k不会很多.然后每隔k个比一下当前的异或和和前面异或和的异或值是否为0的就行了.
#pragma comment(linker, "/STACK:1024000000,1024000000")
#include <bits/stdc++.h>
using namespace std;
typedef long long  LL;
const int N = 100005;
LL a[N],sum[N];
int factor[N],ans[N];
int main()
{int tcase;scanf("%d",&tcase);while(tcase--){int n;scanf("%d",&n);memset(sum,0,sizeof(sum));for(int i=1; i<=n; i++){scanf("%I64d",&a[i]);sum[i] = sum[i-1]^a[i];}int id = 0,m = n;factor[id++] = 1;for(int i=2; i*i<=n; i++){if(n%i==0){if(i*i==n) factor[id++] = i;else{factor[id++] = n/i;factor[id++] = i;}}}factor[id++] = n;sort(factor,factor+id);int cnt = 0;bool flag = false;for(int j=0; j<id; j++){bool flag = false;int k = factor[j];for(int i=2*k; i<=n; i+=k){LL pre = sum[i]^sum[i-k],nxt;if(i>=2*k) nxt = sum[i-k]^sum[i-2*k];else nxt = sum[i-k];if((pre^nxt)!=0) {flag = true;break;}}if(!flag) ans[cnt++] = k;}flag = true;for(int i=0;i<cnt;i++){if(!flag) printf(" %d",ans[i]);else printf("%d",ans[i]);flag = false;}printf("\n");}return 0;
}

转载于:https://www.cnblogs.com/liyinggang/p/5926459.html

BestCoder #88(1001 1002)相关推荐

  1. 矩阵快速幂---BestCoder Round#8 1002

    当要求递推数列的第n项且n很大时,怎么快速求得第n项呢? 可以用矩阵快速幂来加速计算. 我们可以用矩阵来表示数列递推公式 比如fibonacci数列 可以表示为 [f(n)   f(n-1)] = [ ...

  2. 贪心/二分查找 BestCoder Round #43 1002 pog loves szh II

    题目传送门 1 /* 2 贪心/二分查找:首先对ai%=p,然后sort,这样的话就有序能使用二分查找.贪心的思想是每次找到一个aj使得和为p-1(如果有的话) 3 当然有可能两个数和超过p,那么an ...

  3. 运行Spotify Music Converter mac时出现错误1001,1002,1004?

    很多朋友用户都下载了Spotify Music Converter for mac,但是有些用户在运行Spotify Music Converter mac时会出现错误1001,1002,1004?这 ...

  4. BestCoder 1st Anniversary ($) 1002.Hidden String

    Hidden String Accepts: 437 Submissions: 2174 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 26 ...

  5. 1001 1002

    1001 Hello,World! 题目如下: This is the first problem for test. Since all we know the ASCII code, your j ...

  6. 2016百度之星 - 测试赛(热身,陈题)1001,1002,1003,1004

    1001.大搬家  Accepts: 515  Submissions: 2005  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 655 ...

  7. BestCoder Round #80 1002

    HDU 5666 Segment 题意:给你条斜率为-1,常数项为q(q为质数)的直线,连接原点与直线上整数格点,问你在有多少个格点在形成的无数个三角形内,而不在线段上,结果对P取模. 思路:best ...

  8. HDU5142 NPY and arithmetic progression BestCoder Round #23 1002

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5143 解题思路:BestCoder官方题解: 可以发现等差数列只有(123,234,1234和长度&g ...

  9. BestCoder Round #86 1002 HDU 5805 ——NanoApe Loves Sequence

    题意 给定一个数列,随机从该数列里删除一个数,求该数列的的相邻之间的绝对值的最大值的和. 思路 两个数列来分别维护i位前面的相邻的绝对值的最大以及i后面的最大,枚举每一个可能删除的数,然后分别从左右和 ...

  10. hdu 4932 BestCoder Round #4 1002

    这题真是丧心病狂,引来今天的hack狂潮~ Miaomiao's Geometry Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65 ...

最新文章

  1. golang 程序后台运行的方法 linux windows
  2. JavaScript 表单编程
  3. 数智工厂是如何炼成的?从最佳实践案例找答案
  4. tennylvHTML5实现屏幕手势解锁(转载)
  5. 101次从入门到放弃,终于找到一个数据分析利器!
  6. SQL67 牛客每个人最近的登录日期(二)
  7. linux启动找不到内核,linux – PXE启动 – 在TFTP服务器上找不到内核
  8. python之zip
  9. 我的程序员之路(英语的学习)
  10. ESP32 LVGL8.1 ——Label 标签 (Style 14)
  11. 熵权法求权重的Matlab实现
  12. 小伙用C++搞定远程桌面监控系统,轻松拿下12家offer!
  13. 慕课-现代通信技术-知识点记录
  14. 工控机上位机软件的开发历程(四)
  15. 360 自动 html 极速模式,用Meta标签代码让360双核浏览器默认极速模式打开网站不是兼容模式(顺带解决很多兼容性问题)...
  16. HarryPotter第二部—Nagini
  17. 化工计算机图形与数据处理知识内容王水,化工计算机数据与图形处理excel作图.ppt...
  18. HTML——使用 img 标签插入 avi 文件
  19. 云托管,边缘物理计算托管物理计算,你所需要了解的……
  20. 笔记:C#_对象池_异常代码: c0000005

热门文章

  1. 开放大学建筑构造计算机考试试题,国家开放大学电大专科《建筑构造》2021期末试题及答案(试卷号:2345)...
  2. C/C++项目源码——数字雨DigitalRain
  3. 手机怎么解决同ip多账号_原神手游如何多开刷初始号赚钱技巧攻略 | 兔子IP
  4. Srm32 dwm1000 tdoa定位源码
  5. dnastar拼接反向互补序列_什么叫“反向互补序列”????????
  6. 《最新黑客攻防实战从入门到精通(第2版)》.(武新华, 孙振辉 ).[PDF]ckook
  7. KEPServerEX V6轻松连接Wonderware InTouch
  8. 什么是项目管理43210法?
  9. TFTP协议下载服务器指定文件夹内的图片
  10. 【常用软件下载地址】java开发官方资源下载网址大全(持续更新)