[Vijos 比赛]

[题目来源]:Vijos@潘帕斯雄鹰生日模拟赛T3

[关键字]:数学

[题目大意]:n个队伍进行循环赛,给出第m号队在每一局里对阵的对手,求出第T轮对阵表。

//===================================================================================================

[分析]:

IN

3 1 2

2

1

3

 

   队伍 1 2 3

第一场  2 1 3

第二场  1 3 2

第三场  3 2 1

 

IN

5 2 4

1

3

2

5

4

  队伍 1 2 3 4 5

第一场 2 1 3 5 4

第二场 5 3 2 4 1

第三场 4 2 5 1 3

第四场 1 5 4 3 2

第五场 3 4 1 2 5

 

观察:第一组数据:开始给的1号队伍的比赛,2,1,3;后来构造出来后,2号队伍比赛:第一场已知,打1号,然后下来是1,3,2和1号队伍纵向顺序一致,只是开头不位置不一样;3号队伍也一样,1,3,2的顺序,从第三场开始的。

 

第二组数据一样:还是1,3,2,5,4的错位循环。

 

于是大胆猜测:就是个错为循环过程,每个队伍循环开始打头的位置就是他和给定的M队打的那轮。

[代码]:

View Code
  1 program Project1;
2
3 var
4
5 n, m, t: longint;
6
7 table: array[0..200,0..200] of longint;
8
9 data: array[0..200] of longint;
10
11
12
13 procedure init;
14
15 var
16
17 i, x, temp: longint;
18
19 begin
20
21 readln(n,m,t);
22
23 for i := 1 to n do
24
25 begin
26
27 readln(temp);
28
29 table[i,m] := temp;
30
31 if temp = m then x := i;
32
33 end;
34
35 temp := 1;
36
37 i := x;
38
39 repeat
40
41 data[temp] := table[i,m];
42
43 inc(temp);
44
45 inc(i);
46
47 if i > n then i := 1;
48
49 until temp > n;
50
51 //for i := 1 to n do writeln(data[i]);
52
53 end;
54
55
56
57 function get(x: longint):longint;
58
59 var
60
61 i: longint;
62
63 begin
64
65 for i := 1 to n do
66
67 if table[i,m] = x then exit(i);
68
69 end;
70
71
72
73 procedure work;
74
75 var
76
77 i, j, x, temp: longint;
78
79 begin
80
81 for i := 1 to n do
82
83 begin
84
85 temp := get(i);
86
87 x := 1;
88
89 for j := 1 to n do
90
91 begin
92
93 table[temp,i] := data[x];
94
95 inc(x);
96
97 inc(temp);
98
99 if temp > n then temp := 1;
100
101 end;
102
103 end;
104
105 end;
106
107
108
109 procedure print;
110
111 var
112
113 i: longint;
114
115 begin
116
117 for i := 1 to n do
118
119 write(table[t,i],'');
120
121 end;
122
123
124
125 begin
126
127 assign(input,'/home/noi/桌面/1/1.in');reset(input);
128
129 assign(output,'/home/noi/桌面/1/1.out');rewrite(output);
130
131 init;
132
133 work;
134
135 print;
136
137 close(input);
138
139 close(output);
140
141 end.



你可能感兴趣的:(OS)