码迷,mamicode.com
首页 > 其他好文 > 详细

编程之美2015 资格赛 hihocoder 题目2: 回文字符序列

时间:2015-04-17 22:06:26      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:

 

思路:暴力搜,用BFS的方式,生成每一种可能,再对每一种可能进行判断是否回文,进行统计。严重超时!计算一个25个字符的,大概要20多秒!

技术分享
 1 #include <iostream>
 2 #include <deque>
 3 #include <string>
 4 #include <stdio.h>
 5 #include <cstring>
 6 using namespace std;
 7 
 8 deque<string> a;
 9 
10 bool isP(string &s )
11 {
12     string::iterator it1=s.begin();
13     string::iterator it2=s.end();
14     while( it1!=it2 && it1!=--it2 )
15     {
16         if( *it1!=*it2 )
17             return false;
18         it1++;
19     }
20     return true;
21 }
22 
23 unsigned long long count()   //判断回文,注意取余
24 {
25     unsigned long long cnt=0;
26     string tmp="";
27     a.pop_front();
28     while( !a.empty() )
29     {
30         tmp =a.front();
31 
32         if( tmp.size()==1 )
33             cnt++;  //单个的情况
34         else if( isP(tmp)==true )
35             cnt++;
36 
37         a.pop_front();
38         if(cnt>100007 )
39             cnt %= 100007;
40     }
41     return cnt;
42 }
43 
44 int betree(string &s, int len)  //生成树
45 {
46     string tmp="";
47     a.push_back(tmp);
48 
49     int i, j, limit =a.size() ;
50 
51     for(i=0; i<len; i++)
52     {
53         for(j=0; j<limit; j++)
54         {
55             a.push_back(a.front());   //不装第i个
56             a.push_back(a.front()+s[i]);   //装第i个
57             a.pop_front();
58         }
59         limit =a.size();
60     }
61     return 0;
62 }
63 
64 int main()
65 {
66     //freopen("input.txt","r",stdin);
67     int t, j=0;
68     string s;
69     cin>>t;
70     while(t--)
71     {
72         a.clear();
73         s="";
74         cin>>s;
75         betree(s, s.size());
76         cout<<"Case #"<< ++j<< ": "<< count()<<endl;
77     }
78     return 0;
79 }
BFS超时

 

 

另外的思路:有一个感觉,肯定可以用DP,但是状态方程写不出来。

 

编程之美2015 资格赛 hihocoder 题目2: 回文字符序列

标签:

原文地址:http://www.cnblogs.com/xcw0754/p/4435955.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!