题意:

  如上图所示,将一个字符串进行分割,反转等操作后不同字符串的个数:

例如字符串abba:可以按三种比例分割;1:3;2:2;3:1

部分反转可以得到如下所有的字符串:

  

  去掉重复可以得到六个不同的字符串,输出6;
解题思路:
  此题用反转函数reverse比较方便,然后就和模拟差不多,要列出所有情况,把不同的字符串保存在一个字符数组中,每次得到一个字符串都和该字符数字中的每一个比较,如果都不相同,把它存入字符数组;、
直接看代码吧:
 //Organize Your Train part II
#include<stdio.h>
#include<string>
#include<string.h>
#include<algorithm>
using namespace std;
int t;
char s1[],s2[];
char map[][];
int ans;//全局变量,记录字符串的个数
void check(char s[])//检测是否有新的字符串
{
for(int i=;i<ans;i++)
{
if(strcmp(s,map[i])==)
return;
}
strcpy(map[ans++],s);
return;
}
int main()
{
scanf("%d",&t);
int n;
while(t--)
{
ans=;
scanf("%s",s1);
n=strlen(s1);
for(int i=;i<n-;i++)
{
strcpy(s2,s1);
check(s2);
reverse(s2,s2+i+);
check(s2);
reverse(s2+i+,s2+n);
check(s2);
reverse(s2,s2+i+);
check(s2);
reverse(s2,s2+n);
check(s2);
reverse(s2,s2+n-i-);
check(s2);
reverse(s2+n-i-,s2+n);
check(s2);
reverse(s2,s2+n-i-);
check(s2);
}
printf("%d\n",ans);
}
return ;
}
 

  

POJ 3007 Organize Your Train part II的更多相关文章

  1. POJ 3007 Organize Your Train part II (字典树 静态)

    Organize Your Train part II Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6478   Acce ...

  2. poj 3007 Organize Your Train part II(二叉排序树)

    题目:http://poj.org/problem?id=3007 题意:按照图示的改变字符串,问有多少种..字符串.. 思路:分几种排序的方法,,刚开始用map 超时(map效率不高啊..),后来搜 ...

  3. POJ 3007 Organize Your Train part II(哈希链地址法)

    http://poj.org/problem?id=3007 题意 :给你一个字符串,让你无论从什么地方分割,把这个字符串分成两部分s1和s2,然后再求出s3和s4,让你进行组合,看能出来多少种不同的 ...

  4. poj 3007 Organize Your Train part II(静态字典树哈希)

    Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6700 Accepted: 1922 Description RJ Freigh ...

  5. POJ 3007:Organize Your Train part II

    Organize Your Train part II Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7561   Acce ...

  6. Organize Your Train part II 字典树(此题专卡STL)

    Organize Your Train part II Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8787   Acce ...

  7. poj Organize Your Train part II

    http://poj.org/problem?id=3007 #include<cstdio> #include<algorithm> #include<cstring& ...

  8. Organize Your Train part II(hash)

    http://poj.org/problem?id=3007 第一次用STL做的,TLE了,自己构造字符串哈希函数才可以.. TLE代码: #include <cstdio> #inclu ...

  9. Organize Your Train part II-POJ3007模拟

    Organize Your Train part II Time Limit: 1000MS Memory Limit: 65536K Description RJ Freight, a Japane ...

随机推荐

  1. OGR SQL

    The OGRDataSource supports executing commands against a datasource via the OGRDataSource::ExecuteSQL ...

  2. oracle scn浅析

    1. 系统SCN号 查询系统SCN号的方法: select dbms_flashback.get_system_change_number from dual commit后系统SCN号会增长,但是即 ...

  3. android的fragment基本介绍

    可以分为下面的几部分: 使用支持库 创建一个Fragment 创建一个动态UI 多个Fragment之间的通信 1.使用支持库 如果您的应用需要运行在3.0及以上的版本,可以忽略这部分内容. 如果您的 ...

  4. android平板Home键的监听

    关于android4.2平板Home键的监听 1.android4.0以上的平板Home键是不能屏蔽的,至少在应用层是这样.但是可以监听Home键的触发,主要是通过广播的监听来接受Hone键的触发广播 ...

  5. android开发过程中遇到的小问题

    ​转自:http://www.sctarena.com/Article/Article.asp?nid=5070​​1.在编写xml布局的时候,总是提示[Accessibility] Missing ...

  6. django-form表单的提交

    <form action="/blog/" method="get"> 如果runserver默认启用127.0.0.1:8000的话,且上面这个f ...

  7. C/C++迭代器使用具体解释

    迭代器是一种检查容器内元素并遍历元素的数据类型.能够替代下标訪问vector对象的元素. 每种容器类型都定义了自己的迭代器类型,如 vector: vector<int>::iterato ...

  8. PHP - 代码分离

    总代码: <?php /* * Version:1.0 * CreateTime:2015年11月11日 * Author:HF_Ultrastrong *///引入公共文件,在公共文件中创建, ...

  9. vi命令提示:Terminal too wide

    putty: 在我的电脑上,缺省的设置是这样的: localhost:~ eygle$ stty -aspeed 9600 baud; 51 rows; 171 columns; 在远程编辑文件时,减 ...

  10. OC中多线程的一些概念

    1.进程1.1>进程是指在系统中正在运行的一个应用程序(同时打开QQ和Xcode,系统会分别启动2个进程)1.2>每个进程之间是独立的,每个进程均运行在其专用的且受保护的内存空间内 2.线 ...