POJ 3007 Organize Your Train part II

题意:

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

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

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

  

  去掉重复可以得到六个不同的字符串,输出6;

解题思路:

  此题用反转函数reverse比较方便,然后就和模拟差不多,要列出所有情况,把不同的字符串保存在一个字符数组中,每次得到一个字符串都和该字符数字中的每一个比较,如果都不相同,把它存入字符数组;、

直接看代码吧:

 1 //Organize Your Train part II
 2 #include<stdio.h>
 3 #include<string>
 4 #include<string.h>
 5 #include<algorithm>
 6 using namespace std;
 7 int t;
 8 char s1[201],s2[201];
 9 char map[1000][201];
10 int ans;//全局变量,记录字符串的个数
11 void check(char s[])//检测是否有新的字符串
12 {
13     for(int i=0;i<ans;i++)
14     {
15         if(strcmp(s,map[i])==0)
16             return;
17     }
18     strcpy(map[ans++],s);
19     return;
20 }
21 int main()
22 {
23     scanf("%d",&t);
24     int n;
25     while(t--)
26     {
27         ans=0;
28         scanf("%s",s1);
29         n=strlen(s1);
30         for(int i=0;i<n-1;i++)
31         {
32             strcpy(s2,s1);
33             check(s2);
34             reverse(s2,s2+i+1);
35             check(s2);
36             reverse(s2+i+1,s2+n);
37             check(s2);
38             reverse(s2,s2+i+1);
39             check(s2);
40             reverse(s2,s2+n);
41             check(s2);
42             reverse(s2,s2+n-i-1);
43             check(s2);
44             reverse(s2+n-i-1,s2+n);
45             check(s2);
46             reverse(s2,s2+n-i-1);
47             check(s2);
48         }
49         printf("%d\n",ans);
50     }
51     return 0;
52 }

  

时间: 2024-12-24 21:13:04

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

POJ3007(Organize Your Train part II)

传送门 Organize Your Train part II Time Limit: 1000MS   Memory Limit: 65536K       Description RJ Freight, a Japanese railroad company for freight operations has recently constructed exchange lines at Hazawa, Yokohama. The layout of the lines is shown i

poj3007 Organize Your Train part II, 字符串hash

题意: 给定一个字符串,从任意位置把它切为两半,得到两条子串 定义 子串1为s1,子串2为s2,子串1的反串为s3,子串2的反串为s4 现在从s1 s2 s3 s4中任意取出两个串组合,问有多少种不同的组合方法 #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <set> #in

poj3007--Organize Your Train part II(hash)

Organize Your Train part II Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7365   Accepted: 2130 Description RJ Freight, a Japanese railroad company for freight operations has recently constructed exchange lines at Hazawa, Yokohama. The

Train Problem II 卡特兰裸题(入门题)

Train Problem II  题目大意:给你一个数n,表示有n辆火车,编号从1到n,从远方驶过来,问你有多少种出站的可能. 解题思路:模拟栈的问题而已.  卡特兰问题. 1 import java.math.*; 2 import java.util.*; 3 import java.io.*; 4 5 public class Main 6 { 7 static int MS=101; 8 public static void main(String[] args) 9 { 10 Sca

hdoj 1023 Train Problem II 【卡特兰】+【高精度】

题意:询问有多少种进站出站的顺序. 经典卡特兰.我对卡特兰目前的认识就是有n个1和n个-1,组成一个为2n的数列的方式有多少种.这就跟火车进站出站类似, 至于具体的卡特兰数的介绍,百度解释的很详细. 代码1(c语言): /* h(n) = h(n-1)*(4*n-2)/(n+1); */ #include <stdio.h> #include <string.h> #define M 110 int s[M][M] = {0}, b[M]; void init(){ s[1][0]

HDU——1023 Train Problem II

Train Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 9701    Accepted Submission(s): 5210 Problem Description As we all know the Train Problem I, the boss of the Ignatius Train Stat

C - Train Problem II——(HDU 1023 Catalan 数)

传送门 Train Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7616    Accepted Submission(s): 4101 Problem Description As we all know the Train Problem I, the boss of the Ignatius Train

ACM-卡特兰数之Train Problem II——hdu1023

***************************************转载请注明出处:http://blog.csdn.net/lttree*************************************** Train Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 5589    Accept

hdu 1023 Train Problem II 这题运用到大数相乘+大数相除+卡特兰数

Train Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 6454    Accepted Submission(s): 3514 Problem Description As we all know the Train Problem I, the boss of the Ignatius Train Stat