NOI 2016 D1T1 优秀的拆分(80分)
来源:互联网 发布:淘宝一千零一夜演员表 编辑:程序博客网 时间:2024/05/03 08:33
【分析】
论一个只会暴力的人的痛苦
复杂度O(n^3),在洛谷上测一下可以过80分(特判懒得写,加上就90了…)
g[i][j] 表示i到j之间能否构成“AA”的形式,暴力就可以出来
然后枚举子序列长度,起点位置,以及断点位置与起点的长度,就能找出“AABB”中A与B接壤的位置,然后左边右边都判断一下
【代码】
//NOI 2016 D1T1 优秀的拆分#include<iostream>#include<cstdio>#include<cstring>#define fo(i,j,k) for(i=j;i<=k;i++)#define M(a) memset(a,0,sizeof a)using namespace std;bool g[2001][2001],f[2001][2001];char c[2001];inline bool judge(int s,int l) //判断哦 { int i; fo(i,s,s+l-1) if(c[i]!=c[i+l]) break; if(i<s+l) return 0; return 1;}int main(){ int t,i,j,k,l; scanf("%d",&t); while(t--) { int ans=0; scanf("%s",c); M(g); int len=strlen(c)-1; fo(i,0,len) fo(l,1,(len-i+1)>>1) if(judge(i,l)) g[i][i+2*l-1]=1; for(l=4;l<=len+1;l+=2) fo(i,0,len-l+1) for(k=2;k<=l-2;k+=2) if(g[i][i+k-1] && g[i+k][i+l-1]) ans++; printf("%d\n",ans); } return 0;}//4//aabbbb//cccccc//aabaabaabaa//bbaabaababaaba
3 0
- NOI 2016 D1T1 优秀的拆分(80分)
- UOJ #219 [NOI2016 D1T1] 优秀的拆分 [95分]
- NOI 2016 优秀的拆分 后缀数组
- 【NOI2016】优秀的拆分(95分)
- 【NOI2016】优秀的拆分
- [OpenJudge-NOI]乘积最大的拆分
- bzoj4650: [Noi2016]优秀的拆分
- 4650: [Noi2016]优秀的拆分
- 洛谷mNOIP模拟赛d1t1 斐波那契(90分)
- POJ NOI MATH-7652 乘积最大的拆分
- NOIP2017小凯的疑惑(提高D1T1)
- 【后缀数组】[NOI2016]优秀的拆分
- bzoj 4650: [Noi2016]优秀的拆分
- BZOJ 4650([Noi2016]优秀的拆分-SA)
- NOI2016 优秀的拆分 后缀数组
- NOI2016 优秀的拆分 后缀数组
- NOI2016优秀的拆分 后缀数组
- [BZOJ4650][NOI2016]优秀的拆分-后缀数组
- 7. Reverse Integer [easy] (Python)
- lintcode unique-paths 不同的路径
- poj 2993 Emag eht htiw Em Pleh
- 微信分享和登录共存 回调函数不继续执行的问题
- iOS实用技能之同一个String不同颜色的字
- NOI 2016 D1T1 优秀的拆分(80分)
- POJ 3468<线段树,区间add>
- Codeforces Round #202 (Div. 2) B. Color the Fence(贪心)
- Linux的五种I/O模型
- Validate Binary Search Tree
- 聪哥的壁纸
- ossec主要功能介绍
- Codeforces Round #209 (Div. 2)
- 字符指针的初始化