2013年湘潭大学程序设计比赛(Internet)部分解题报告

题目链接: http://202.197.224.59/OnlineJudge2/index.php/Contest/problems/contest_id/24

就做了几个简单题直接上代码吧~

A题:   Assembly Line

View Code
 1 #include <iostream>
 2 #include <cmath>
 3 #include <cstring>
 4 #include <cstdio>
 5 #include <string>
 6 #include <stdlib.h>
 7 #include <algorithm>
 8 using namespace std;
 9 char s[1005], s1[1005];
10 int main( )
11 {
12     int T;
13     scanf( "%d", &T );
14     while( T -- ){
15         scanf( "%s", &s );
16         strcpy( s1 , s);
17         int l=strlen(s );
18         sort( s, s+l) ;
19         int ans=0, t=0;
20         for( int i=0, j; i<l; ++ i ){
21             if( s[i]!= s1[i] ){
22                 for(  j=i+1; j<l; ++ j ){
23                     if( s1[j]==s[i] && s[j]==s1[i] ){
24                         ans++;
25                         s[j]=s1[j];
26                         break;
27                     }    
28                 }
29                 if( j==l ){
30                     t++;
31                 }
32             }
33         }
34         ans+=( t/3*2 );
35         printf( "%d\n",  ans );
36     }
37     return 0;
38 }

B题: Bus

View Code
 1 #include <iostream>
 2 #include <cmath>
 3 #include <cstring>
 4 #include <cstdio>
 5 #include <string>
 6 #include <stdlib.h>
 7 using namespace std;
 8 int N;
 9 char s[105];
10 int a[26];
11 int main( )
12 {
13     while( scanf("%d", &N)!= EOF ){
14         memset( a, 0, sizeof a );
15         int ans=0;
16         for( int i=0; i<N; ++ i ){
17             scanf( "%s", s);
18             a[s[0]-'a']++;
19             for( int i=0; i<26; ++ i ){
20                 if(a[i]==2){
21                     ans++;
22                     memset(a, 0, sizeof( a ) );
23                     break;
24                 }
25             }
26                 
27         }
28         printf( "%d\n", ans );    
29     } 
30     return 0;
31 }

E题: Encode

View Code
 1 #include <iostream>
 2 #include <cmath>
 3 #include <cstring>
 4 #include <cstdio>
 5 #include <string>
 6 #include <stdlib.h>
 7 using namespace std;
 8 int T; 
 9 char s[10005];
10 int t[20], n;
11 void fuck( int n, int m)
12 {
13     memset( t, 0, sizeof( t ) );
14     int i=0;
15     while( n ){
16         t[i++]=n%2;
17         n/=2;
18     }
19     i=5;
20     while( m ){
21         t[i++]=m%2;
22         m/=2;
23     }
24 }
25 void fuck2(  )
26 {
27     int ans=0;
28     for( int i=7; i>=0; --i )
29         ans*=2, ans+=t[i];
30     printf( "%02x", ans );    
31 }
32 int main( )
33 {
34     scanf( "%d", &T );
35     while( T -- ){
36         scanf( "%s", s );
37         int l=strlen( s );
38         for( int i=0; s[i]; ++i){
39             int n=1;
40             while( s[i+1]&&s[i+1]==s[i] && n<8 ){
41                 i++; n++;
42                 puts( s+n );
43             }
44             fuck( s[i]-'a', n-1 );
45             fuck2( );    
46         }
47         puts( "" );
48     }
49     return 0;
50 }
原文地址:https://www.cnblogs.com/jian1573/p/2953136.html