讨论 / 标准题解
3144046cjc 2010-09-22 22:04:00
点我顶贴 收藏 删除
先用暴力搜索搜了几个小数据,发现是唯一解,而且有规律的。然后就把规律找出来了。我写两组就知道规律了。

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队打的那轮。

代码(真他妈简短):

var n,m,t,qi,i:longint;

a,b:array[1..1000] of longint;

begin

readln(n,m,t);

for i:=1 to n do readln(a[i]);

for qi:=1 to n do if a[qi]=m then break;

for i:=1 to qi-1 do

a[n+i]:=a[i];

for i:=1 to n do

begin if t>=i then b[a[i]]:=a[qi+t-i] else

b[a[i]]:=a[qi+t+n-i];

end;

for i:=1 to n-1 do

write(b[i], );writeln(b[n]);

end.

#1 181818181818@2008-03-07 05:56:00
回复 删除
谢谢大牛!!!!!
#2 wind.L.H@2008-06-03 03:39:00
回复 删除
只要队数大于3的话,比赛安排应该是无法确定的啊……
#3 Jollwish@2008-07-29 07:15:00
回复 删除
谢谢楼主,too!!!!
#4 tamade@2008-08-25 17:58:00
回复 删除
无语…………

强悍!

#5 swq27@2008-08-29 02:28:00
回复 删除
不得不顶
#6 xxwzy@2009-02-21 18:47:00
回复 删除
谢顶
#7 RP@2009-04-09 07:29:00
回复 删除
这个解不唯一吧???

比如说

5 2 4

1

3

2

5

4

比赛赛程可以是

1 2 3 4 5

---------

2 1 4 3 5

5 3 2 4 1

3 2 1 5 4

4 5 3 1 2

1 4 5 2 3

也可以是

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

何来唯一之说???

#8 liye14@2010-05-02 00:22:00
回复 删除
看不懂
#9 351357741@2010-06-04 19:16:00
回复 删除
小弟看懂了一些

感觉题目样例应该多几个!

#10 128位pc机@2010-07-08 23:55:00
回复 删除
关于那个解的数目,题目中不是说的很清楚了么....

为什么还要证明?

查看更多回复
提交回复