zoj3818(暴力枚举)
来源:互联网 发布:全面战争 知乎 编辑:程序博客网 时间:2024/04/29 07:04
题意:
给出一个字符串;
判断这个字符串是不是押韵;
押韵的情况有两种"ABABA"和"ABABCAB";
像ni co ni co ni就是ABABA格式的;
还要求ABC不相同;
思路:
直接枚举ABC可能的长度,
暴力判断:
AC代码:
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N = 50 + 10;char s[N], str[N];char a[N], b[N];int n, len;bool judge1(){int flag;for(int i = 1; i < len; i++) {int j = len - i;flag = 0;if(i % 3 == 0 && j % 2 == 0) {int leni = i / 3;int lenj = j / 2;if(leni != lenj)flag = 1;if(leni == lenj) {for(int k = 0; k < leni; k++) {if(str[k] != str[k + leni]) {flag = 1;break;}}}if(!flag)continue;flag = 0;for(int k = 0; k < leni; k++) {if(str[k] != str[k + leni + lenj] || str[k] != str[k + 2 * leni + 2 * lenj]) {flag = 1;break;}}if(flag)continue;for(int k = 0; k < lenj; k++) {if(str[k + leni] != str[k + 2 * leni + lenj]) {flag = 1;break;}}if(flag)continue;return true;}}return false;}bool judge2() {int flag;for(int i = 1; i < len; i++) {int j = len - i;flag = 0;if(i % 3 == 0) {int leni = i / 3;int lenj = j;int lena, lenb;int flag1,flag2,flag3;for(int lena = 1; lena < leni; lena++) {flag1 = flag2 = flag3 = 0;lenb = leni - lena;if(lena != lenb) flag1 = 1;if(lena != lenj) flag2 = 1;if(lenb != lenj) flag3 = 1;if(lena == lenb) {for(int k = 0; k < lena; k++) {if(str[k] != str[k + lena]) {flag1 = 1;break;}}}if(lena == lenj) {for(int k = 0; k < lena; k++) {if(str[k] != str[k + 2 * leni]) {flag2 = 1;break;}}}if(lena == lenj) {for(int k = 0; k < lena; k++) {if(str[k + lena] != str[k + 2 * leni]) {flag3 = 1;break;}}}if(flag1 && flag2 && flag3) {flag = 1;break;}}if(!flag)continue;flag = 0;for(int k = 0; k < leni; k++) {if(str[k] != str[k + leni] || str[k] != str[k + 2 * leni + lenj]) {flag = 1;break;}}if(flag)continue;return true;}}return false;}int main() {int t;scanf("%d",&t);while(t--) {scanf("%s",s);int l = strlen(s);len = 0;for(int i = 0; i < l; i++) {if(s[i] >= 'a' && s[i] <= 'z' || s[i] >= 'A' && s[i] <= 'Z')str[len++] = s[i];}str[len] = '\0';if(judge1() || judge2())printf("Yes\n");elseprintf("No\n");}}
0 0
- zoj3818(暴力枚举)
- ZOJ3818-Pretty Poem(暴力枚举)
- ZOJ3818 Pretty Poem(暴力)
- ZOJ3818--Pretty Poem(暴力)
- ZOJ3818
- 暴力枚举
- 暴力枚举?
- 暴力枚举
- 暴力枚举
- 暴力枚举
- poj 3102(暴力枚举)
- hdu 3332 暴力枚举
- BNU - Candles - 暴力枚举
- poj1222(暴力枚举)
- Coin Change(暴力枚举)
- HDU 3823 暴力枚举
- hdu1015 Safecracker (暴力枚举)
- hdu1172(暴力枚举)
- shell:获取函数的返回值
- 机器学习基石笔记9——机器可以怎样学习(1)
- Neutron结合SDN的架构分析
- Yii2 数据操作Query Builder
- POJ 1273 Drainage Ditches (网络流最大流基础 Edmonds_Karp算法)
- zoj3818(暴力枚举)
- 元素计数算法
- 程序员往底层偏的一条路线
- ios使用plist
- javascript之高级程序设计
- hadoop2.4.1+hbase0.98集群
- Apple Catching (poj 2385 简单dp)
- 写给计算机专业的同学
- epoll_create, epoll_ctl和epoll_wait