Login with GitHub. Nope?
修正 C++ 的程式碼在使用一定量動態記憶體後會產生 RF 的問題 @ 2019/12/6 4:45pm NeoHOJ 強勢復活中 (Open beta)
Submit  Ranklist

Problem : 249 - Fish

Problem Statistics

Solved Member: 7  Submission: 64  User Tried: 9

Statement:

據Scheherazade說,在很遠的沙漠中有一個湖。湖中起初有N條魚。選擇最值錢的K種寶石,對F條魚的每一條只餵給它一塊寶石。注意,因為K可能小於F,兩條或更多的魚可能會吞下同一種寶石。

隨著時間的流逝,有些魚吃掉了別的魚。一條魚能夠吃掉另一條魚,當且僅當它的長度是被吃掉的魚的兩倍(A 能吃掉B 當且僅當LA >= 2 * LB)。沒有規則說明一條魚何時會吃掉另一條魚。有的魚可能會一條接一條地吃掉幾條小魚,而有的魚可能不吃別的魚,即使它們有能力吃。當一條魚吃掉一條小魚時,它的身長並不改變,但是小魚腹中的寶石會完好無損地進到大魚腹中。

據Scheherazade說,如果你能夠找到那個湖,你會被准許捕捉一條魚,並且得到魚腹中的寶石。你很想試試運氣,但是在出發前很想知道捉到一條魚可能會有多少種不同的寶石組合。

Task:

寫一個程序,給定每條魚的長度以及其最初吞食的寶石的種類,找出魚腹中寶石不同組合的數量對給定整數M取模的值。

組合由每種寶石的數量定義,與寶石的排列順序無關。同一類寶石中任意兩塊是沒有區別的。

限制:
•1 <= F <= 500,000,湖中最初魚的數量。
•1 <= K <= F,寶石的種類。
•2 <= M <= 30,000
•1 <= LX <= 1,000,000,000,魚X的長度。

Input:Output:

你的程序需要從標準輸入上讀入下列數據:

• 第一行是整數F, 即湖中最初魚的數量。
• 第二行是整數K, 即寶石的種類數。不同類型的寶石分別用從1 到K的整數表示。
• 第三行是整數M。
• 以後F 行中的每一行用由一個空格分隔的兩個整數描述一條魚:按順序分別是魚的長度以及魚腹中的寶石的類型。

注意: 在所有的測試用例中,K 種寶石中的每一種都會至少有一塊。
輸出你的程序需要在標準輸出上輸出一個介於0和M-1(包含)的整數,即寶石所有可能的不同組合數量模M,佔一行。

注意,在問題求解中,數值M 除了簡化計算外沒有其他的作用。

有 70 分的測試資料中 K 不超過7,000。

有 25 分的測試資料中 K 不超過20。

Sample Input:Sample Output:

5
3
7
2 2
5 1
8 3
4 1
2 3
4

HINT:

有11 種可能的組合,所以你需要輸出4,也就是11 模7。

這些可能的組合是: [1] [1,2] [1,2,3] [1,2,3,3] [1,3] [1,3,3] [2] [2,3] [2,3,3] [3] 和[3,3]。

(對每一種組合, 我們列出其所包含的寶石。 例如,[2,3,3] 包含一塊2型寶石和兩塊3型寶石)
這些組合可以由下述方式獲得:

• [1]: 如果你在​​第二條魚(或第四條) 吃掉任何其它魚之前捕捉到它。
• [1,2]: 如果第二條魚吃掉第一條魚, 它就會有一塊1 型寶石(它在初始時刻吞下的) 和一塊2型寶石(從第一條魚腹中得到的)。
• [1,2,3]: 一種可能的途徑是: 第四條魚吃掉第一條魚,然後第三條魚又吃掉它。如果你此時捉到了第三條魚,那它腹中就會有這三種寶石一樣一塊。
• [1,2,3,3]: 第四條魚吃掉第一條魚,第三條魚吃掉第四條魚,第三條魚吃掉第五條魚,你捉到了第三條魚。
• [1,3]: 第三條魚吃掉第四條魚,你捉到了第三條魚。
• [1,3,3]: 第三條魚吃掉第五條魚,第三條魚吃掉第四條魚,你捉到了第三條魚。
• [2]: 你捉到了第一條魚。
• [2,3]: 第三條魚吃掉第一條魚,你捉到了第三條魚。
• [2,3,3]: 第三條魚吃掉第一條魚,第三條魚吃掉第五條魚,你捉到了第三條魚。
• [3]: 你捉到了第三條魚。
• [3,3]: 第三條魚吃掉第五條魚,你捉到了第三條魚。

Source:

IOI 2008

Problem Setter

Testdata:

TestTimeMemoryScore
03000ms65536kb
13000ms65536kb5
23000ms65536kb5
33000ms65536kb5
43000ms65536kb5
5-13000ms65536kb5
5-23000ms65536kb
6-13000ms65536kb5
6-23000ms65536kb
73000ms65536kb5
83000ms65536kb5
9-13000ms65536kb6
9-23000ms65536kb
10-13000ms65536kb6
10-23000ms65536kb
10-33000ms65536kb
11-13000ms65536kb6
11-23000ms65536kb
11-33000ms65536kb
12-13000ms65536kb6
12-23000ms65536kb
13-13000ms65536kb6
13-23000ms65536kb
143000ms65536kb5
153000ms65536kb5
16-13000ms65536kb5
16-23000ms65536kb
17-16000ms65536kb5
17-26000ms65536kb
18-16000ms65536kb5
18-26000ms65536kb
18-36000ms65536kb
18-46000ms65536kb
19-16000ms65536kb5
19-26000ms65536kb
19-36000ms65536kb
19-46000ms65536kb