7-28-比賽

題目連接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=27454#overviewios

比賽.........仍是英語沒學好啊........有些題目看不懂.............= =數組

A.Printer Queuespa

//單獨講.............code

B.Parencodingsblog

很簡單.......ci

我是開了三個數組a[n],b[n],c[n]-------------a[n]表明輸入的n個數,b[n]表明是輸出的n個數,c[n]表明n個左括號的狀態(配對了仍是沒有配對);get

b[0]=1;string

若a[i]-a[i-1]>0,那麼i右括號所對應左括號就在它左邊第一位,記b[i]=1,c[a[i]-1]=1(標記這個被配對的左括號);io

若a[i]-a[i-1]=0,那麼從c[a[i]-1]開始向c[0]搜索,第一個沒有被標記的右括號j就是配對的括號,即b[i]=a[i]-j,c[j]=1(標記配對括號);class

代碼以下:

 1 #include<iostream>
 2 #include<string.h>
 3 #include<stdio.h>
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     int n,x;
 9     int a[1000],b[1000],c[1000];
10     scanf("%d",&n);
11     while(n--)
12     {
13         scanf("%d",&x);
14         int i,j,k;
15         for(i=0;i<x;i++)
16             scanf("%d",&a[i]);
17         memset(c,0,sizeof(c));
18         c[a[0]-1]=1;
19         for(i=1;i<x;i++)
20              if((a[i]-a[i-1])!=0) c[a[i]-1]=1;
21         b[0]=1;
22         for(i=1;i<x;i++)
23         {
24             k=a[i]-a[i-1];
25             if(k!=0) b[i]=1;
26             else
27             {
28                 for(j=a[i]-1;j>=0;j--)
29                     if(c[j]==0){ b[i]=a[i]-j; c[j]=1;break;}
30             }
31         }
32         for(i=0;i<x-1;i++)
33             printf("%d ",b[i]);
34         printf("%d\n",b[x-1]);
35     }
36     return 0;
37 }

C.Emag eht htiw Em Pleh

先打出棋盤,再把點放到對應的位置,最後打印出棋盤。題目不難,就是要細心............WA了好幾回,就是座標點應該減‘0’時,寫成了‘1’...........T T

代碼:

 1 #include<iostream>
 2 #include<cstring>
 3 #include<string>
 4 #include<cstdio>
 5 using namespace std;
 6 
 7 int main()
 8 {
 9     char a[63],b[63];
10     string c[17];
11     int i,j,k,xa,xb;
12     for(i=0;i<17;i+=2)
13         c[i]="+---+---+---+---+---+---+---+---+";
14     for(i=1;i<17;i+=4)
15         c[i]="|...|:::|...|:::|...|:::|...|:::|";
16     for(i=3;i<17;i+=4)
17         c[i]="|:::|...|:::|...|:::|...|:::|...|";
18     gets(a);
19     gets(b);
20     xa=strlen(a);
21     xb=strlen(b);
22     k=7;
23     for(i=7;i<xa;i++)
24     {
25         if(a[i]==',')
26         {
27             if(i-k==3)
28         {
29             c[(8-(a[i-1]-'0'))*2+1][2+(a[i-2]-'a')*4]=a[k];
30             k=i+1;
31         }
32             else
33             {
34                 c[1+(8-(a[i-1]-'0'))*2][2+(a[i-2]-'a')*4]='P';
35                 k=i+1;
36             }
37         }
38     }
39      c[1+(8-(a[k+1]-'0'))*2][2+(a[k]-'a')*4]='P';
40      k=7;
41     for(i=7;i<xb;i++)
42     {
43         if(b[i]==',')
44         {
45             if(i-k==3)
46         {
47             c[1+(8-(b[i-1]-'0'))*2][2+(b[i-2]-'a')*4]=b[k]+32;
48             k=i+1;
49         }
50             else
51             {
52                 c[1+(8-(b[i-1]-'0'))*2][2+(b[i-2]-'a')*4]='p';
53                 k=i+1;
54             }
55         }
56     }
57     c[1+(8-(b[k+1]-'0'))*2][2+(b[k]-'a')*4]='p';
58     for(i=0;i<17;i++)
59         cout<<c[i]<<endl;
60     return 0;
61 }

D.Grandpa is Famous

題目不難,個人解法是,用一個數組記錄每一個數字輸入了多少次,再找出輸入第二多的數字,再輸出。

代碼:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     int a[10010],b[250000],i,j,x,y,n,max1,max2;
 9     while(scanf("%d%d",&x,&y)!=EOF)
10     {
11         if(x==0 && y==0) break;
12         memset(a,0,sizeof(a));
13         for(i=0;i<x*y;i++)
14         {
15             scanf("%d",&b[i]);
16             a[b[i]]++;
17         }
18         max1=-1;
19         max2=-1;
20         for(i=0;i<10010;i++)
21         {
22             if(a[i]>max1)
23             {
24                 max2=max1;
25                 max1=a[i];
26             }
27             else
28                 if(a[i]>max2)
29                     max2=a[i];
30         }
31         for(i=0,n=0;i<10010;i++)
32             if(a[i]==max2)
33             {
34                 if(n==0)
35                    printf("%d ",i);
36                 else
37                     printf(" %d",i);
38             }
39         printf("\n");
40     }
41     return 0;
42 }

 

E.An Old Stone Game

       單獨講............

相關文章
相關標籤/搜索