ZOJ 3985 String Of CCPC 字符串,模拟
2017-11-06 21:41
525 查看
题意:给出长度为n的字符串,只包含字符C,P 操作:第i次添加字符需要消耗i-1元 字符串的价值为子串"CCPC"的个数.
n<=1e5 问字符串的价值最大为多少?
添加一个字符 最多使总价值增加1(原本的CCPC可能被覆盖),所以最多操作一次.
先数字符串原先有多少个CCPC 把这些位置(除了开头和结尾)涂黑.表示不能在其之间加入(若加入,则贡献-1,+1无意义)
然后在数是否有子串CCC CPC CCP即可.
现场的时候真的是失了智!
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e6+5;
int n;
char s
,a[]={"CCPC"};
char b[][5]={"CCC","CPC","CCP"};
bool check(int p)
{
for(int i=0;i<4;i++)
if(s[p+i]!=a[i])
return false;
return true;
}
bool fun(int p)
{
for(int i=0;i<3;i++)
{
bool flag=true;
for(int j=0;j<3;j++)
{
if(s[p+j]!=b[i][j])
flag=false;
}
if(flag)
return true;
}
return false;
}
int main()
{
int T;
cin>>T;
while(T--)
{
int cnt=0,num=0;
scanf("%d%s",&n,s+1);
for(int i=1;i<=n;i++)
{
if(s[i]=='X')
continue;
if(check(i))
{
for(int j=i+1;j<i+3;j++)
s[j]='X';
cnt++;
}
}
for(int i=1;i<=n;i++)
{
if(s[i]=='X')
continue;
if(fun(i))
num=1;
}
printf("%d\n",cnt+num);
}
return 0;
}
//6 CCCCPC
n<=1e5 问字符串的价值最大为多少?
添加一个字符 最多使总价值增加1(原本的CCPC可能被覆盖),所以最多操作一次.
先数字符串原先有多少个CCPC 把这些位置(除了开头和结尾)涂黑.表示不能在其之间加入(若加入,则贡献-1,+1无意义)
然后在数是否有子串CCC CPC CCP即可.
现场的时候真的是失了智!
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e6+5;
int n;
char s
,a[]={"CCPC"};
char b[][5]={"CCC","CPC","CCP"};
bool check(int p)
{
for(int i=0;i<4;i++)
if(s[p+i]!=a[i])
return false;
return true;
}
bool fun(int p)
{
for(int i=0;i<3;i++)
{
bool flag=true;
for(int j=0;j<3;j++)
{
if(s[p+j]!=b[i][j])
flag=false;
}
if(flag)
return true;
}
return false;
}
int main()
{
int T;
cin>>T;
while(T--)
{
int cnt=0,num=0;
scanf("%d%s",&n,s+1);
for(int i=1;i<=n;i++)
{
if(s[i]=='X')
continue;
if(check(i))
{
for(int j=i+1;j<i+3;j++)
s[j]='X';
cnt++;
}
}
for(int i=1;i<=n;i++)
{
if(s[i]=='X')
continue;
if(fun(i))
num=1;
}
printf("%d\n",cnt+num);
}
return 0;
}
//6 CCCCPC
相关文章推荐
- ZOJ 3985 String of CCPC (字符串判断)
- ZOJ 3985 String of CCPC
- ZOJ 3985 && 2017CCPC秦皇岛 E:String of CCPC
- ZOJ - 3985 String of CCPC (2017CCPC秦皇岛站 简单题)
- ZOJ - 3985 - String of CCPC (分类讨论)
- zoj&CCPC秦皇岛站E-思维-String of CCPC
- 2017CCPC秦皇岛 E:String of CCPC
- Use parameters instead of string concatenation for forming SQL queries,用参数方式来生成sql语句,而不是用连接字符串的方式
- 345. Reverse Vowels of a String (转置字符串中的元音字母)
- (转帖)如何将字符串前后的空白去除? (使用string.find_first_not_of, string.find_last_not_of) (C/C++)
- ZOJ 1151 Word Reversal反转单词 (string字符串处理)
- Spring Mvc使用Jackson进行json转对象时,遇到的字符串转日期的异常处理(Can not deserialize value of type Date from String)
- CodeForces 143B - Help Kingdom of Far Far Away 2(字符串模拟)
- iOS 判断字符串中含有某个字符串 rangeOfString
- LR模拟请求中出现中文字符串导致错误的解决办法_lr_convert_string_encoding
- 如何将字符串前后的空白去除? (使用string.find_first_not_of, string.find_last_not_of) (C/C++)
- Minimum Expression of String 字符串最小表示
- HDU 1483 Automatic Correction of Misspellings (字符串大模拟)
- 字符串字符JS:1.8,字符串(string)对象(length,indexOf(),lastIndexOf(),replace(),match(),toUpperCase(),toLowerCas
- 访问字符串对象的内容(Accessing the Content of String Objects)CFString