TC-Practice-Record

tchs-1 none 1000pt DFS 利用进入的方向划分四个边

tchs-2 250pt 直接算就行 我写了2分 500pt 暴力可以过,但是判断时候不能用stringstream 用算术判断 也可以用构造法 1000pt 每一位有三种可能性

           不用,保持不动,变化,分别递归计算value并更新结果即可,由于递归深度最多只有13层所以不会tle

           另外也可以写出基数为3的循环来遍历每一种情况具体看代码

    for(i=0,A[0]++;A[i]>2;i++){
       A[i]=0;A[i+1]++;
  }

tchs-3 1000pt 要想使乘积最大,需要更多的3即可 500pt 又看错题了 ~~~ft 要注意题目一定要看清楚

tchs-4 500pt 模拟题,好难懂 音乐的~ 可以都乘以16 用整数来计算 浮点会很烦~ 这种题思路要清晰 一步一步来

tchs-5 250pt 简单题,注意使用double 可以用1.0*int就不用double()了还有 int(h+1e-9);

          500pt 简单题,把所有word提取出来然后排序,再依次插入标点即可,注意有些小技巧

Code Snippet
      string wordSort ( string s )
       {
             vector < string > SA , SB ;
             string A = "" , B = "" ;
             for ( int i = 0 ; i < s . size (); i ++)
                 if ( s [ i ]>= 'A' && s [ i ]<= 'Z' ||( s [ i ]<= 'z' && s [ i ]>= 'a' )){
                     if ( B != "" ){
                       SB . push_back ( B ); B = "" ;
                     }
                     A += s [ i ];
                 }
                 else{
                     if ( A != "" ){
                       SA . push_back ( A ); A = "" ;
                     }
                     B += s [ i ];
                 }
             if ( A != "" ) SA . push_back ( A ); if ( B != "" ) SB . push_back ( B );
             sort ( SA . begin (), SA . end ()); string res = "" ;
             int i = 0 ;
             for (; i < SA . size ()&& i < SB . size (); i ++)
                 if ( s [ 0 ]>= 'A' && s [ 0 ]<= 'Z' ||( s [ 0 ]<= 'z' && s [ 0 ]>= 'a' ))
                     res = res + SA [ i ]+ SB [ i ];
                 else
                     res = res + SB [ i ]+ SA [ i ];
             for (; i < SA . size (); i ++) res += SA [ i ];
             for (; i < SB . size (); i ++) res += SB [ i ];
             return res ;
       }

思路要清晰,两个轮替记录即可

                1000pt    显然的BFS 利用队列 只是题意不太好理解,最好把判断写成小函数,主程序会看起来比较清晰,不容易出错~ 一步一步来

你可能感兴趣的:(TC-Practice-Record)