HDU5944
来源:互联网 发布:网络文员兼职 编辑:程序博客网 时间:2024/06/06 03:54
题意:给一个字符串,长度小于1w,求满足条件的三元组(i, j, k)的个数。条件为:i,j,k是等比数列,比值是个整数,并且s[i]=='y'&&s[j]=='r'&&s[k]=='x',或者s[i]=='x'&&s[j]=='r'&&s[k]=='y'。
解析:开始是暴力枚举i和j,然后看k是否满足,结果超时了。
换种思路,还是暴力枚举,枚举公比。代码如下:
#include <stdio.h>#include <string.h>#include <stdlib.h>#define N 10005char str[N];int a[N], b[N];int main(){int t;scanf("%d", &t);while(t--){scanf("%s", str);int len = strlen(str);int cnt = 0;for(int i = 2; i * i <= len; i++){for(int j = 1; j*i*i <=len; j++){if(str[j-1]=='y' && str[j*i-1]=='r' && str[j*i*i-1] == 'x')cnt++;if(str[j-1]=='x' && str[j*i-1]=='r' && str[j*i*i-1] == 'y')cnt++;}}printf("%d\n", cnt);}return 0;}时间复杂度:枚举公比:sqrt(len)=100,再枚举开始位置,由j*i*i<=len可得复杂度为:sqrt(len),所以总的时间复杂度不会超过O(len)。
时间复杂度还是得考虑清楚啊。
0 0
- hdu5944
- HDU5944
- HDU5944 Fxx and string
- hdu5944(Fxx and string)
- HDU5944——Fxx and string
- Linux和AIX主机获取主机帐号创建时间和最后一次登录时间
- alias编写自己的linux命令
- 设计模式
- 76. Minimum Window Substring
- 适配器模式
- HDU5944
- 使用Word写测试用例遇到页码从第三页开始问题
- LeetCode OJ-392.Is Subsequence
- 奔跑的人生
- 浅谈JavaScript元素的尺寸和位置相关属性
- JavaEE学习之JPA中配置文件persistence.xml(JTA与一种方式)
- eclipse查看源代码
- 合肥庐阳经开区举办2017年首期企业家培训班
- 多样式文本SpannableString