순환 경기 일정(귀속 해법)
10866 단어 递归
n=2k 선수가 테니스 사이클을 치러야 한다.지금 요구를 충족시키는 경기 일정표를 설계해야 돼요.
(1) 모든 선수는 다른 n-1개 선수와 한 번씩 시합해야 한다.
(2) 하루에 한 번만 경기할 수 있는 선수가 없다.
(3) 순환 경기는 모두 n-1일 진행된다.
이 요구에 따라 경기 일정을 n행과 n-1열이 있는 표로 설계할 수 있다.표의 i행과 j열에 i선수가 제j일에 만난 선수를 기입하다.
#include
<
iostream
>
using
namespace
std;
#define
TABLE_SIZE 8
int
table[TABLE_SIZE][TABLE_SIZE];
void
Creattable(
int
r1,
int
c1,
int
r2,
int
c2,
int
size)
{
int
i,j;
int
halfsize
=
size
/
2
;
if
(size
>
1
)
Creattable(
0
,
0
,halfsize,halfsize,halfsize);
//
else
table[
0
][
0
]
=
1
;
for
(i
=
0
;i
<
size;i
++
)
for
(j
=
0
;j
<
size;j
++
)
{
//
halfsize
if
(i
<
halfsize
&&
(j
>=
halfsize
&&
j
<
size))
table[i][j]
=
table[i][j
-
halfsize]
+
halfsize;
//
if
((i
>=
halfsize
&&
i
<
size)
&&
j
<
halfsize)
table[i][j]
=
table[i
-
halfsize][j
+
halfsize];
//
if
((i
>=
halfsize
&&
i
<
size)
&&
(j
>=
halfsize
&&
j
<
size))
table[i][j]
=
table[i
-
halfsize][j
-
halfsize];
}
}
int
main()
{
int
i,j;
Creattable(
0
,
0
,TABLE_SIZE,TABLE_SIZE,TABLE_SIZE);
for
(i
=
0
;i
<
TABLE_SIZE;i
++
)
{
cout
<<
"
"
<<
table[i][
0
]
<<
"
:
"
;
for
(j
=
1
;j
<
TABLE_SIZE;j
++
)
cout
<<
table[i][j]
<<
"
"
;
cout
<<
endl;
}
return
0
;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
순환 경기 일정(귀속 해법)문제 설명: n=2k 선수가 테니스 사이클을 치러야 한다.지금 요구를 충족시키는 경기 일정표를 설계해야 돼요. (1) 모든 선수는 다른 n-1개 선수와 한 번씩 시합해야 한다. (2) 하루에 한 번만 경기할 수 있는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.