C プログラムで指定されたサイズの最大和二乗部分行列を出力します。
NxN 行列が与えられた場合、行列 MxM のすべての要素の合計が最大になるように、M=1 となる MxM 部分行列を見つけます。行列 NxN への入力には、ゼロ、正の整数値、および負の整数値を含めることができます。
例
Input: {{1, 1, 1, 1, 1}, {2, 2, 2, 2, 2}, {3, 3, 3, 3, 3}, {4, 4, 4, 4, 4}, {5, 5, 5, 5, 5} } Output: 4 4 5 5
上記の問題は簡単な解決策で解決できます。NxN 行列全体を取得し、すべての可能な MxM 行列を見つけて次を求めることができます。それらの合計を計算し、最大の合計を持つ MxM 行列を出力します。この方法は単純ですが、時間計算量が O(N^2.M^2) であるため、時間計算量がより少ない方法を見つけようとします。
アルゴリズム
Start Step 1 -> Declare Function void matrix(int arr[][size], int k) IF k>size Return Declare int array[size][size] Loop For int j=0 and j<size and j++ Set sum=0 Loop for int i=0 and i<k and i++ Set sum=sum + arr[i][j] End Set array[0][j]=sum Loop For int i=1 and i<size-k+1 and i++ Set sum=sum+(arr[i+k-1]][j]-arr[i-1][j] Set arrayi][j]=sum End Set int maxsum = INT_MIN and *pos = NULL Loop For int i=0 and i<size-k+1 and i++) Set int sum = 0 Loop For int j = 0 and j<k and j++ Set sum += array[i][j] End If sum > maxsum Set maxsum = sum Set pos = &(arr[i][0]) End Loop For int j=1 and j<size-k+1 and j++ Set sum += (array[i][j+k-1] - array[i][j-1]) IF sum > maxsum Set maxsum = sum Set pos = &(arr[i][j]) End End End Loop For int i=0 and i<k and i++ Loop For int j=0 and j<k and j++ Print *(pos + i*size + j) End Print </p><p> End Step 2 -> In main() Declare int array[size][size] = {{1, 1, 1, 1, 1}, {2, 2, 2, 2, 2}, {3, 3, 3, 3, 3}, {4, 4, 4, 4, 4}, {5, 5, 5, 5, 5}} Declare int k = 2 Call matrix(array, k) Stop
例
#include <bits/stdc++.h> using namespace std; #define size 5 void matrix(int arr[][size], int k){ if (k > size) return; int array[size][size]; for (int j=0; j<size; j++){ int sum = 0; for (int i=0; i<k; i++) sum += arr[i][j]; array[0][j] = sum; for (int i=1; i<size-k+1; i++){ sum += (arr[i+k-1][j] - arr[i-1][j]); array[i][j] = sum; } } int maxsum = INT_MIN, *pos = NULL; for (int i=0; i<size-k+1; i++){ int sum = 0; for (int j = 0; j<k; j++) sum += array[i][j]; if (sum > maxsum){ maxsum = sum; pos = &(arr[i][0]); } for (int j=1; j<size-k+1; j++){ sum += (array[i][j+k-1] - array[i][j-1]); if (sum > maxsum){ maxsum = sum; pos = &(arr[i][j]); } } } for (int i=0; i<k; i++){ for (int j=0; j<k; j++) cout << *(pos + i*size + j) << " "; cout << endl; } } int main(){ int array[size][size] = { {1, 1, 1, 1, 1}, {2, 2, 2, 2, 2}, {3, 3, 3, 3, 3}, {4, 4, 4, 4, 4}, {5, 5, 5, 5, 5}, }; int k = 2; matrix(array, k); return 0; }
出力
上記のプログラムを実行すると、次の出力が生成されます
4 4 5 5
以上がC プログラムで指定されたサイズの最大和二乗部分行列を出力します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









印刷が必要なファイルを開いたときに、印刷プレビューで表の枠線が何らかの原因で消えてしまった場合は、早めに対処する必要があります。 file このような質問がある場合は、エディターに参加して次のコースを学習してください: Excel で表を印刷するときに枠線が消えた場合はどうすればよいですか? 1. 次の図に示すように、印刷する必要があるファイルを開きます。 2. 以下の図に示すように、必要なコンテンツ領域をすべて選択します。 3. 以下の図に示すように、マウスを右クリックして「セルの書式設定」オプションを選択します。 4. 以下の図に示すように、ウィンドウの上部にある「境界線」オプションをクリックします。 5. 下図に示すように、左側の線種で細い実線パターンを選択します。 6.「外枠」を選択します

この記事では、Microsoft Word で文書を再ページしたり印刷したりするときにメモリまたはディスク容量が不足する問題を解決する方法を紹介します。このエラーは通常、ユーザーが Word 文書を印刷しようとしたときに発生します。同様のエラーが発生した場合は、この記事に記載されている解決策を参照してください。この文書を再ページまたは印刷するにはメモリまたはディスク容量が不足しています。 Word エラー Microsoft Word の印刷エラー「文書を再ページまたは印刷するには、メモリまたはディスク容量が不足しています。」を解決する方法。 Microsoft Office を更新する メモリを大量に消費するアプリケーションを閉じる 通常使うプリンタを変更する Word をセーフ モードで起動する NorMal.dotm ファイルの名前を変更する Word ファイルを別のファイルとして保存する

このデジタル世界においても、印刷されたページの必要性は消えていません。コンテンツをコンピュータに保存してプリンタに直接送信するほうが便利だと思うかもしれませんが、iPhone でも同じことができます。 iPhone のカメラを使用すると、写真やドキュメントを撮ることができ、いつでも印刷できるようにファイルを直接保存することもできます。このようにして、必要な情報を迅速かつ簡単に具体化し、紙の文書に保存できます。仕事中でも日常生活でも、iPhone はポータブルな印刷ソリューションを提供します。次の投稿は、iPhone を使用してページをプリンタで印刷する場合に知っておくべきことをすべて理解するのに役立ちます。 iPhone から印刷する: Apple に問い合わせる

Windows 11/10 で Snipping Tool を使用して印刷できない場合は、システム ファイルの破損またはドライバーの問題が原因である可能性があります。この記事では、この問題の解決策を紹介します。 Windows 11/10 で Snipping Tool から印刷できない Windows 11/10 で Snipping Tool から印刷できない場合は、次の修正を使用します。 PC プリンタを再起動する 印刷キューをクリアする プリンタとグラフィックス ドライバを更新する Snipping Tool を修正またはリセットする SFC を実行し、 DISM スキャンは PowerShell コマンドを使用して Snipping Tool をアンインストールおよび再インストールします。始めましょう。 1] PC とプリンターを再起動します。 PC とプリンターを再起動すると、一時的な不具合を解消できます。

間違って大きなファイルを印刷してしまったのでしょうか?インクと用紙を節約するために印刷を停止または一時停止する必要がありますか? Windows 11 デバイスで進行中の印刷ジョブを一時停止する必要がある状況は数多くあります。 Windows 11 で印刷を一時停止するにはどうすればよいですか? Windows 11 では、印刷を一時停止すると印刷ジョブは一時停止されますが、印刷タスクはキャンセルされません。これにより、ユーザーはより柔軟な制御が可能になります。これを行うには、次の 3 つの方法があります。 タスクバーを使用して印刷を一時停止する Windows の設定を使用して印刷を一時停止する コントロール パネルを使用して印刷する それでは、これらを詳しく見てみましょう。 1] タスクバーを使用して印刷する タスクバーの印刷キュー通知を右クリックします。クリックすると、アクティブなプリンター オプションがすべて開きます。ここで、印刷ジョブを右クリックし、「すべて一時停止」を選択します。

Word を使用して差し込み印刷文書を印刷するときに空白のページが表示される場合は、この記事が役に立ちます。差し込み印刷は、個人用の文書を簡単に作成し、複数の受信者に送信できる便利な機能です。 Microsoft Word の差し込み印刷機能は、ユーザーが受信者ごとに同じコンテンツを手動でコピーする時間を節約できるため、高く評価されています。差し込み文書を印刷するには、[差し込み文書] タブに移動します。しかし、一部の Word ユーザーは、差し込み文書を印刷しようとすると、プリンターで空白のページが印刷されたり、まったく印刷されなかったりすると報告しています。これは、間違ったフォーマットまたはプリンター設定が原因である可能性があります。文書とプリンターの設定を確認し、印刷前に必ず文書をプレビューして内容が正しいことを確認してください。もし

Outlook は最も機能が豊富な電子メール クライアントの 1 つであり、プロフェッショナルなコミュニケーションに不可欠なツールとなっています。課題の 1 つは、Outlook ですべての添付ファイルを同時に印刷することです。通常、印刷する前に添付ファイルを 1 つずつダウンロードする必要がありますが、すべてを一度に印刷したい場合、これはほとんどの人が遭遇する問題です。 Outlook ですべての添付ファイルを印刷する方法 ほとんどの情報は Outlook アプリケーションでオンラインで保持されますが、バックアップのために情報を印刷する必要がある場合があります。契約書、政府の書類、宿題などの法的要件を満たすために、文書に直接署名する必要があります。 Outlook の添付ファイルを 1 つずつ印刷するのではなく、ワンクリックですべての添付ファイルを印刷できる方法がいくつかあります。それぞれを詳しく見てみましょう。アウトルー

Vue で印刷機能を実装するには、特定のコード サンプルが必要です。 Vue.js は、ユーザー インターフェイスを構築するための進歩的な JavaScript フレームワークです。多くの Web アプリケーションでは、印刷機能は非常に重要な部分です。この記事では、Vue で印刷機能を実装する方法と具体的なコード例を紹介します。 Vue で印刷機能を実装するには、まず印刷されるコンテンツが何であるかを明確にする必要があります。通常、印刷するコンテンツは div などの HTML 要素に入れます。次に、Jav経由で
