B00015 平方矩陣問題

2021-08-07 13:35:43 字數 2467 閱讀 6811

給定n,m,min和max,求所有的,滿足0<=i<=n,0<=j<=m並且min<=i*j<=max。

要求:不得使用暴力法,演算法複雜度要求o(n,m)

1.設有k和l,若滿足k*l是不滿足條件的;若k*l>max,對於i>=k且j>=l,則是不滿足條件的。

2.可以考慮用三分法。

3.需要考慮n和m比較小的情形,例如0,1,2,也許需要做特殊的處理。

樣例資料如下:

輸入:n,m,min和max分別為10,10,31,41

結果:<4 8>

<4 9>

<4 10>

<5 7>

<5 8>

<6 6>

<7 5>

<8 4>

<8 5>

<9 4>

<10 4>

暴力法程式如下:

/* b00015 平方矩陣問題(暴力法) */

#include using namespace std;

int main()

return 0;

}

執行結果(輸入與輸出):

10 10 31 41

<4 8>

<4 9>

<4 10>

<5 7>

<5 8>

<6 6>

<7 5>

<8 4>

<8 5>

<9 4>

<10 4>

根據網友提供的程式改進後的程式:

/* b00015 平方矩陣問題(二分法) */

#include #include using namespace std;

int b_search_max(int row, int left, int right , int maxs)

}return right;

}int b_search_min(int row, int left, int right , int mins)

}return left;

}int main()

return 0;

}

執行結果(輸入與輸出)之一:

10 10 31 41

<4 8>

<4 9>

<4 10>

<5 7>

<5 8>

<6 6>

<7 5>

<8 4>

<8 5>

<9 4>

<10 4>

執行結果(輸入與輸出)之二:

15 15 31 41

<3 11>

<3 12>

<3 13>

<4 8>

<4 9>

<4 10>

<5 7>

<5 8>

<6 6>

<7 5>

<8 4>

<8 5>

<9 4>

<10 4>

<11 3>

<12 3>

<13 3>

進一步改進後的程式:

/* b00015 平方矩陣問題(綜合二分法) */

#include #include using namespace std;

int b_search_max(int row, int left, int right , int maxs)

}return right;

}int b_search_min(int row, int left, int right , int mins)

}return left;

}int main()

return 0;

}

執行結果(輸入與輸出)之一:

10 10 31 41

<4 8>

<4 9>

<4 10>

<5 7>

<5 8>

<6 6>

<7 5>

<8 4>

<8 5>

<9 4>

<10 4>

執行結果(輸入與輸出)之二:

15 15 31 41

<3 11>

<3 12>

<3 13>

<4 8>

<4 9>

<4 10>

<5 7>

<5 8>

<6 6>

<7 5>

<8 4>

<8 5>

<9 4>

<10 4>

<11 3>

<12 3>

<13 3>

754 平方矩陣 II

輸入整數n,輸出乙個n階的二維陣列。陣列的形式參照樣例。輸入格式 輸入包含多行,每行包含乙個整數n。當輸入行為n 0時,表示輸入結束,且該行無需作任何處理。輸出格式 對於每個輸入整數n,輸出乙個滿足要求的n階二維陣列。每個陣列佔n行,每行包含n個用空格隔開的整數。每個陣列輸出完畢後,輸出乙個空行。資...

AcWing 754平方矩陣

題目描述 輸入整數n,輸出乙個n階的二維陣列。陣列的形式參照樣例。輸入格式 輸入包含多行,每行包含乙個整數n。當輸入行為n 0時,表示輸入結束,且該行無需作任何處理。輸出格式 對於每個輸入整數n,輸出乙個滿足要求的n階二維陣列。每個陣列佔n行,每行包含n個用空格隔開的整數。每個陣列輸出完畢後,輸出乙...

AcWing 753 平方矩陣 I

原題鏈結 題目描述 輸入整數n,輸出乙個n階的回字形二維陣列。陣列的最外層為1,次外層為2,以此類推。輸入格式 輸入包含多行,每行包含乙個整數n。當輸入行為n 0時,表示輸入結束,且該行無需作任何處理。輸出格式 對於每個輸入整數n,輸出乙個滿足要求的n階二維陣列。每個陣列佔n行,每行包含n個用空格隔...