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

Problem : 47 - Logs

Problem Statistics

Solved Member: 30  Submission: 165  User Tried: 32

Statement:

給你一個N*M的二元矩陣(它由0和1兩個數字組成),請你找出一個最大的矩形使裡面的數字全部都是1,並且,你可以交換任意列的排列(橫行必須按照順序,但是直列的順序可以隨意交換)。

Input:Output:

1<=N<=15000
1<=M<=1500
30%的測資中N,M<=1024
因為測資檔有點大,為了避免讀檔過久以導致超時,在C/C++裡面建議你使用gets()來讀取測資。
輸出只有一行,請輸出最大的矩陣的面積。

Sample Input:Sample Output:

10 6
001010
111110
011110
111110
011110
111111
110111
110111
000101
010101
21

HINT:

範測解釋:
把2 4 5列排在一起,然後你就會看到有個大小為21的長方形。(第2~8行,第2,4,5列)

Source:

CEOI 2009

Problem Setter

Testdata:

TestTimeMemoryScore
01200ms65536kb
11200ms65536kb10
21200ms65536kb10
31200ms65536kb10
41200ms65536kb10
51200ms65536kb10
61200ms65536kb10
71200ms65536kb10
81200ms65536kb10
91200ms65536kb10
101200ms65536kb10