c456: 5. 馬拉松
Tags :
Accepted rate : 19人/33人 ( 58% ) [非即時]
評分方式:
Tolerant

最近更新 : 2020-04-29 13:12

Content

金氏運動公司打算舉辦一場馬拉松比賽,為了締造亮眼的完成比賽時間,金氏運動公司打算選擇性地邀請選手參賽。分析過往的數據資料,金氏運動公司觀察到以下二個現象:


(a) 對於任何一位選手,如果愈多他的朋友參賽,則他就能跑得愈快,所以傾向於找一群選手使得彼此互相認識的情況很多。因為認識是雙向的,如果 $\color{black}{P}$ 認識 $\color{black}{Q}$,則 $\color{black}{Q}$ 認識 $\color{black}{P}$。所以當我們說 $\color{black}{P}$ 認識 $\color{black}{Q}$ 時,等同於表示 $\color{black}{P}$、$\color{black}{Q}$ 兩位互相認識。

(b) 如果參賽的選手當中,存在兩位選手 $\color{black}{P}$ 和 $\color{black}{Q}$ 彼此不認識,而且在參賽的選手當中無法找到 $\color{black}{t}$ 位選手 $\color{black}{S_1、\ldots、S_t}$ ($\color{black}{t}$ 為任意大於 $\color{black}{0}$ 的整數),使得 $\color{black}{P}$ 認識 $\color{black}{S_1}$,$\color{black}{S_1}$ 認識$\color{black}{S_2}$,$\color{black}{\ldots}$,$\color{black}{S_{t-1}}$ 認識 $\color{black}{S_t}$,$\color{black}{S_t}$ 認識 $\color{black}{Q}$,則比賽將會有嚴重的惡性競爭,所以需要避免這樣的狀況。

現在金氏運動公司手上有一份 $\color{black}{N}$ 位選手的名單以及一份顯示這 $\color{black}{N}$ 位選手彼此之間是否認識的表單,現在的任務是從這 $\color{black}{N}$ 位選手找出選手的子集合 $\color{black}{S = \{P_1, P_2, \ldots, P_{\left\lvert S \right\rvert}\}}$,使得 $\color{black}{S}$ 沒有惡性競爭的狀況,而且讓以下影響因子 $\color{black}{F(S)}$ 得到最大化,這影響因子的設計除了讓每位選手都認識夠多的參賽者,也兼顧了不讓參賽人數過少。

$\color{black}{F(S) = \left\lvert S \right\rvert min_{1 \le i \le \left\lvert S \right\rvert}D_i}$,

其中 $\color{black}{D_i}$ 表示選手 $\color{black}{P_i}$ 所認識的人當中,有多少人在子集合 $\color{black}{S}$ 裡面。 在以下這個 $\color{black}{4}$ 位選手的例子中,選 $\color{black}{S = \{2, 3, 4\}}$ 比其他的選法有更高的 $\color{black}{F(S)}$。

Input

每一組測試資料有兩列, 其中第一列有兩個正整數 $\color{black}{N}$ 和 $\color{black}{M (1 \le M \le N*(N-1)/2)}$,
第二列有 $\color{black}{M}$ 對正整數 $\color{black}{X_1\ Y_1\ X_2\ Y_2\ \ldots\ X_M\ Y_M}$,代表選手 $\color{black}{X_i}$ 認識選手 $\color{black}{Y_i (1 \le i \le M}$ 且 $\color{black}{1 \le X_i \lt Y_i \le N)}$。

Output

對於每組測試資料,輸出最大的 $\color{black}{F(S)}$。$\color{black}{F(S)}$ 這數字需獨自佔一列。

Sample Input #1
輸入範例 1:
4 5
1 2 2 3 3 4 4 1 2 4

輸入範例 2:
4 4
1 2 2 3 3 4 2 4

輸入範例 3:
6 6
1 3 1 2 2 3 4 5 5 6 4 6
Sample Output #1
輸出範例 1:
8

輸出範例 2:
6

輸出範例 3:
6
測資資訊:
記憶體限制: 512 MB
公開 測資點#0 (2%): 3.0s , <1K
公開 測資點#1 (2%): 3.0s , <1M
公開 測資點#2 (2%): 3.0s , <1K
公開 測資點#3 (2%): 3.0s , <1M
公開 測資點#4 (2%): 3.0s , <1K
公開 測資點#5 (2%): 3.0s , <1M
公開 測資點#6 (2%): 3.0s , <1M
公開 測資點#7 (2%): 3.0s , <1M
公開 測資點#8 (2%): 3.0s , <1M
公開 測資點#9 (1%): 3.0s , <1M
公開 測資點#10 (4%): 3.0s , <1M
公開 測資點#11 (4%): 3.0s , <1M
公開 測資點#12 (4%): 3.0s , <1M
公開 測資點#13 (4%): 3.0s , <1M
公開 測資點#14 (4%): 3.0s , <1M
公開 測資點#15 (4%): 3.0s , <1M
公開 測資點#16 (4%): 3.0s , <1M
公開 測資點#17 (4%): 3.0s , <1M
公開 測資點#18 (3%): 3.0s , <1M
公開 測資點#19 (3%): 3.0s , <1M
公開 測資點#20 (5%): 3.0s , <10M
公開 測資點#21 (5%): 3.0s , <50M
公開 測資點#22 (5%): 3.0s , <1M
公開 測資點#23 (4%): 3.0s , <10M
公開 測資點#24 (4%): 3.0s , <10M
公開 測資點#25 (4%): 3.0s , <50M
公開 測資點#26 (4%): 3.0s , <10M
公開 測資點#27 (4%): 3.0s , <50M
公開 測資點#28 (4%): 3.0s , <50M
公開 測資點#29 (4%): 3.0s , >50M
Hint :

本題共有三個子題,每一子題可有多筆測試資料:
第一子題的測試資料中 $\color{black}{N \le 100}$,全部解出可獲 19 分;
第二子題的測試資料中 $\color{black}{N \le 500}$,全部解出可獲 38 分;
第三子題的測試資料中 $\color{black}{N \le 5000}$,全部解出可獲 43 分。

Tags:
出處:
106學年度全國資訊學科能力競賽 [管理者:
icube (!@#$%^&*()_...)
]


ID User Problem Subject Hit Post Date
沒有發現任何「解題報告」