uestc1607+构造+dp

题意

1
给定你n个队:要你安排比赛方式,使得每队都能与其他队比:

题解

1
构造!将队分成两列,那么每列的对应队比赛,然后保持1不变,其他的顺时针旋转!!刚好转n-1

总结

1
2


code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

using namespace std;
const int Maxn=100005;
typedef pair<int,int> pii;
int n,a[Maxn],pai[2][Maxn];
int ()
{
scanf("%d",&n);
for(int i=1;i<=n/2;i++)
pai[0][i]=i,pai[1][i]=n-i+1;
for(int i=1;i<n;i++)
{
for(int j=1;j<=n/2;j++)
printf("%d %d ",pai[0][j],pai[1][j]);
puts("");
int t=pai[0][2];
for(int j=3;j<=n/2;j++)
pai[0][j-1]=pai[0][j];
pai[0][n/2]=pai[1][n/2];
for(int j=n/2-1;j>=1;j--)
pai[1][j+1]=pai[1][j];
pai[1][1]=t;
}
return 0;
}