天天看點

Problem 1109 - 破解密碼

數組轉置題,隻要把握好轉置函數就可以,注意臨界條件。然後就是不要多輸出空格。

1 #include<stdio.h>
 2 #include<string.h>
 3 int s[100010];
 4 void Rev(int s[],int a,int b)
 5 {
 6     int t,i,j;
 7     for(i=a-1,j=b-1;i<=(b+a-2)/2;i++,j--)   
 8     {
 9         t=s[i];
10         s[i]=s[j];
11         s[j]=t;
12     }
13 }
14 int main()
15 {
16     int i,j,a,b,T,n,m;
17     scanf("%d",&T);
18     while(T--)
19     {
20         scanf("%d%d",&n,&m);
21 
22         for(i=0;i<n;i++)
23             s[i]=i+1;
24         for(j=1;j<=m;j++)
25         {
26             scanf("%d%d",&a,&b);
27             Rev(s,a,b);
28         }
29         printf("%d",s[0]);
30         for(i=1;i<n;i++)
31             printf(" %d",s[i]);
32         printf("\n");
33     }
34     return 0;
35 }      

轉載于:https://www.cnblogs.com/hjf007/p/3250518.html