2011,3.13(纠结的四小时)

  刚参加完HDUContest Ranklist,前所未有的纠结,也是前所未有的尝到了“不是努力的不够,而上效率的滞后”,一直在努力,一直期盼着能小试牛刀,一展身手。可谁想第一道题就给泼了冷水,貌似简单的面罩下隐藏着捉摸不透的不确定性因素,使劲浑身解数,最终以提交n次超时而结束,就这样抱着试试的心态开始看艰难的第二题。一看,简单!

  当带着激动的心情迅速地拿出方案并顺利地写完后,这下总该给个a鼓励鼓励了吧,感觉是标准答案了,一提交,w; 后来改了数遍,也没想明白究竟是哪儿出了错,就在最后的十几分钟突然灵感一闪,原来错的很深啊,这也是这道题的关键所在,又是算法,又是效率。。。

 看来需要改进的地方还很多,继续奋斗acm!

ContractedBlock.gif ExpandedBlockStart.gif View Code
 
     
1 #include " iostream "
2   using namespace std;
3 char a[ 110 ],b[ 110 ];
4 int i,j,k;
5 int L1;
6 int mark = 0 ;
7 int yy[ 1000 ],ss[ 1000 ];
8 void Xun_huan() // 实现一次循环
9 {
10 char ch = a[ 0 ];
11 int ss = yy[ 0 ];
12 for ( int q = 0 ;q <= L1 - 1 ;q ++ )
13 {
14 a[q] = a[q + 1 ];
15 yy[q] = yy[q + 1 ];
16 }
17 a[L1 - 1 ] = ch;
18 yy[L1 - 1 ] = ss;
19 }
20 void X_Sub() // 将序列一分为二
21 {
22 char c[ 110 ],d[ 110 ];
23
24 for (i = 0 ; i < L1 / 2 ; i ++ )
25 c[i] = a[i];
26
27 int k = 0 ;
28 for (i = L1 - 1 ,k = 0 ;i >= L1 / 2 + 1 ; i -- ,k ++ )
29 d[k] = a[i];
30
31 int flag = 0 ;
32 int s = 0 ;
33 for (i = 0 , s = 0 ; i < L1 / 2 , s < k; s ++ ,i ++ )
34 {
35 if (c[i] == d[s]) flag ++ ;
36 }
37 if (flag == L1 / 2 ) mark = 1 ;
38 }
39 int main()
40 {
41 while (scanf( " %s " ,a) != EOF,a[ 0 ] != ' # ' )
42 {
43
44 char xx;
45 mark = 0 ;
46 L1 = strlen(a);
47 if (L1 % 2 == 0 ) cout << " NO " << endl; // 排除偶数的情况
48 else
49 {
50 int mark1 = 0 ;
51 int fuck = 0 ;
52 for (i = 0 ;i < L1;i ++ )
53 {
54 if (a[i] == a[i + 1 ]) fuck ++ ;
55 }
56 if (fuck + 1 == L1) cout << " YES " << " " << L1 / 2 << endl; // 字符相同时
57 else
58 {
59 strcpy(b,a);
60 for ( int r = 0 ;r < L1;r ++ )
61 {
62 yy[r] = r; // 用于记录循环后的位置
63 ss[r] = r; // 用于保存起始位置
64 }
65 for ( int p = 0 ;p < L1;p ++ )
66 {
67 xx = a[L1 / 2 ];
68 X_Sub();
69 if (mark == 1 ) break ;
70 else Xun_huan();
71 }
72 if (mark == 1 )
73 {
74 cout << " YES " << " " ;
75 for (i = 0 ;i < L1;i ++ )
76 if (b[i] == xx)
77 {
78 cout << yy[L1 / 2 ] << endl; break ;
79 }
80 }
81 else cout << " NO " << endl;
82 }
83 }
84 }
85 return 0 ;
86 }

  

转载于:https://www.cnblogs.com/FCWORLD/archive/2011/03/13/1982814.html

你可能感兴趣的:(2011,3.13(纠结的四小时))