这道题是安徽NOI省选题,但是难度并没有那么难。

这道题是一个字符串的递归题,有很多大佬用线段树来写的(我也想学线段树,lowbit当头一棒)。题意为全部相同则输出B或A,不同则分成长度相同的两个子串,并输出C。看到这个便很容易想到递归加二分,但是如何去写上面的函数呢?我顿时想退缩,然后得出策略:枚举子串,假如有不同的则递归二分输出C,直到相同输出A、B。

1.避免出现低级错误,eg.string s[],(mid+1,left),,会耽误很多调试时间

2.熟练运用递归的二分

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#define N 100001
using namespace std;
string s;//!
bool flag;
void work(int left,int right){
flag=true;
int mid=(left+right)/;
for(int i=left+;i<=right;i++){
if(s[i]!=s[i-]){
flag=false;
break;
}
}
if(flag==false){
cout<<"C";
work(left,mid);
work(mid+,right);//!
return;
}
if(flag==true){
if(s[left]=='') cout<<"A";
else if(s[left]=='') cout<<"B";
}
return;
}
int main(){
cin>>s;
int len=s.length();
work(,len-);//!
return ;
}

最新文章

  1. WEB开发中的字符集和编码
  2. id to load is required for loading
  3. Android万能使用WebServices(不用引入外部包)
  4. POJ 2828 线段树(想法)
  5. Checklist For Choosing The Right Database Engine
  6. Magento中如何调用SQL语句
  7. DuiVision开发教程(17)-对话框
  8. C++ CGI Helloword
  9. nojs iis asp.net mvc
  10. ES2015 (ES6)
  11. 顺序表JAVA代码
  12. 不惧面试:HTTP协议(1) - 基础扫盲
  13. 管理Fragments(转)
  14. hbase建表
  15. deeplearning.ai 神经网络和深度学习 week3 浅层神经网络 听课笔记
  16. C#多线程+委托+匿名方法+Lambda表达式
  17. Java Web相关问题
  18. Hexo的next主题安装
  19. Entity Framework Core导航属性加载问题
  20. php实现队列

热门文章

  1. JS几种数组遍历方式总结
  2. int 和guid做主键的时候性能的区别
  3. create-react-app+react-app-rewired引入antd实践
  4. Html5大文件断点续传实现方法
  5. 苹果cms开启防红跳转后,提示模板文件不存在解决方法
  6. mac 绑定阿里企业邮箱
  7. EcShop开发手册
  8. C#中的事件委托
  9. sqli-lab(37)
  10. sql数据库相关语句