


C++-Programm zum Ermitteln der Anzahl eindeutiger Matrizen, die durch Vertauschen von Zeilen und Spalten generiert werden können
Angenommen, wir haben eine n x n-Matrix. Jedes Element in der Matrix ist einzigartig und eine ganze Zahl zwischen 1 und n2. Jetzt können wir die folgenden Operationen in beliebiger Anzahl und Reihenfolge ausführen.
Wir wählen zwei beliebige ganze Zahlen x und y in der Matrix aus, wobei (1 ≤ x
Wir wählen zwei beliebige ganze Zahlen x und y in der Matrix aus, wobei (1 ≤ x
Wir müssen beachten, dass x + y ≤ k und diese Werte nicht in derselben Zeile und Spalte erscheinen können.
Wir müssen die Anzahl der eindeutigen Matrizen herausfinden, die durch die Durchführung der Operation erhalten werden können.
Wenn die Eingabe also etwa n = 3, k = 15, mat = {{4, 3, 6}, {5, 9, 7}, {1, 2, 8}} ist, dann ist die Ausgabe 36.
Zum Beispiel sind die beiden gewählten Werte x = 3 und y = 5. Wenn Sie die Spalten vertauschen, lautet die resultierende Matrix -
3 4 6 9 5 7 2 1 8
Auf diese Weise können Sie 36 solcher eindeutigen Matrizen erhalten.
Um dieses Problem zu lösen, werden wir die folgenden Schritte ausführen:
Define a function dfs(), this will take k, arrays ver and visited, one stack s. if visited[k] is non-zero, then: return visited[k] := true insert k into s for initialize iterator j := start of ver[k], when j is not equal to last element of ver[k], update (increase j by 1), do: dfs(*j, ver, visited, s) Define an array f of size: 51. f[0] := 1 for initialize i := 1, when i <= 50, update (increase i by 1), do: f[i] := (i * f[i - 1]) mod modval Define an array e of size n Define an array pk of size n for initialize i := 0, when i < n, update (increase i by 1), do: for initialize j := i + 1, when j < n, update (increase j by 1), do: chk := 0 for initialize l := 0, when l < n, update (increase l by 1), do: if (mat[i, l] + mat[j, l]) > k, then: chk := 1 Come out from the loop if chk is same as 0, then: insert j at the end of pk[i] insert i at the end of pk[j] chk := 0 for initialize l := 0, when l < n, update (increase l by 1), do: if (mat[l, i] + mat[l, j]) > k, then: chk := 1 Come out from the loop if chk is same as 0, then: insert j at the end of e[i] insert i at the end of e[j] resa := 1, resb = 1 Define an array v1 of size: n and v2 of size: n. for initialize i := 0, when i < n, update (increase i by 1), do: v1[i] := false v2[i] := false for initialize i := 0, when i < n, update (increase i by 1), do: Define one stack s. if not v1[i] is non-zero, then: dfs(i, pk, v1, s) if not s is empty, then: resa := resa * (f[size of s]) resa := resa mod modval for initialize i := 0, when i < n, update (increase i by 1), do: Define one stack s if not v2[i] is non-zero, then: dfs(i, e, v2, s) if not s is empty, then: resb := resb * (f[size of s]) resb := resb mod modval print((resa * resb) mod modval)
Beispiel
Sehen wir uns zum besseren Verständnis die folgende Implementierung an:
#include <bits/stdc++.h> using namespace std; #define modval 998244353 const int INF = 1e9; void dfs(int k, vector<int> ver[], bool visited[], stack<int> &s) { if(visited[k]) return; visited[k] = true; s.push(k); for(vector<int> :: iterator j = ver[k].begin(); j!=ver[k].end(); j++) dfs(*j, ver, visited, s); } void solve(int n, int k, vector<vector<int>> mat) { int f[51]; f[0] = 1; for(int i = 1; i <= 50; i++) { f[i] = (i * f[i-1]) % modval; } vector<int> e[n]; vector<int> pk[n]; for(int i = 0; i < n; i++) { for(int j = i + 1;j < n; j++) { int chk = 0; for(int l = 0; l < n; l++){ if((mat[i][l] + mat[j][l]) > k) { chk = 1; break; } } if(chk==0) { pk[i].push_back(j); pk[j].push_back(i); } chk = 0; for(int l = 0;l < n; l++) { if((mat[l][i] + mat[l][j]) > k){ chk = 1; break; } } if(chk == 0) { e[i].push_back(j); e[j].push_back(i); } } } int resa = 1, resb = 1; bool v1[n], v2[n]; for(int i = 0; i < n; i++) { v1[i] = false; v2[i] = false; } for(int i = 0;i < n; i++) { stack<int> s; if(!v1[i]) { dfs(i, pk, v1, s); if(!s.empty()) { resa *= (f[s.size()]) % modval; resa %= modval; } } } for(int i = 0 ;i < n; i++) { stack<int> s; if(!v2[i]){ dfs(i, e, v2, s); if(!s.empty()) { resb *= (f[s.size()]) % modval; resb %= modval; } } } cout<< (resa * resb) % modval; } int main() { int n = 3, k = 15; vector<vector<int>> mat = {{4, 3, 6}, {5, 9, 7}, {1, 2, 8}}; solve(n, k, mat); return 0; }
Eingabe
3, 15, {{4, 3, 6}, {5, 9, 7}, {1, 2, 8}}
Ausgabe
36
Das obige ist der detaillierte Inhalt vonC++-Programm zum Ermitteln der Anzahl eindeutiger Matrizen, die durch Vertauschen von Zeilen und Spalten generiert werden können. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Im ersten Artikel dieser Reihe haben wir die Zusammenhänge und Unterschiede zwischen künstlicher Intelligenz, maschinellem Lernen, Deep Learning, Datenwissenschaft und mehr diskutiert. Wir haben auch einige schwierige Entscheidungen hinsichtlich der Programmiersprachen, Tools und mehr getroffen, die in der gesamten Serie verwendet werden sollen. Abschließend haben wir noch ein wenig Matrixwissen eingeführt. In diesem Artikel werden wir die Matrix, den Kern der künstlichen Intelligenz, ausführlich besprechen. Aber vorher wollen wir zunächst die Geschichte der künstlichen Intelligenz verstehen. Warum müssen wir die Geschichte der künstlichen Intelligenz verstehen? In der Geschichte gab es viele KI-Booms, aber in vielen Fällen blieben die großen Erwartungen an das Potenzial der KI aus. Das Verständnis der Geschichte der künstlichen Intelligenz kann uns helfen zu erkennen, ob diese Welle der künstlichen Intelligenz Wunder bewirken wird oder nur eine weitere Blase ist, die kurz vor dem Platzen steht. uns

In diesem Artikel erfahren Sie, wie Sie die Determinante einer Matrix mithilfe der Numpy-Bibliothek in Python berechnen. Die Determinante einer Matrix ist ein Skalarwert, der die Matrix in kompakter Form darstellen kann. Es ist eine nützliche Größe in der linearen Algebra und hat zahlreiche Anwendungen in verschiedenen Bereichen, darunter Physik, Ingenieurwesen und Informatik. In diesem Artikel besprechen wir zunächst die Definition und Eigenschaften von Determinanten. Anschließend lernen wir, wie man Numpy zur Berechnung der Determinante einer Matrix verwendet, und sehen anhand einiger Beispiele, wie es in der Praxis verwendet wird. Die Determinante einer Matrix ist ein Larwert, der zur Beschreibung der Eigenschaft verwendet werden kann

Swap Space spielt in Linux-Systemen eine wichtige Rolle, insbesondere wenn das System nur wenig Arbeitsspeicher hat. Es fungiert als Backup-Speicherplatz, der dazu beiträgt, dass das System auch unter hoher Last reibungslos läuft und die Stabilität aufrechterhält. Dieser Artikel bietet Ihnen eine detaillierte Anleitung zum Hinzufügen von Swap-Speicherplatz unter Ubuntu 22.04LTS, um sicherzustellen, dass die Leistung Ihres Systems optimiert ist und verschiedene Arbeitslasten bewältigen kann. Swap Space verstehen Swap Space stellt virtuellen Speicher bereit, der als Ergänzung zum physischen RAM des Systems verwendet wird. Wenn das System nur noch wenig RAM hat, lagert der Kernel Daten auf die Festplatte aus, um Speichermangel und Systemabstürze zu verhindern. Linux-Systeme verwenden üblicherweise Swap Space, um diese Situation zu bewältigen. Führen Sie mehrere speicherintensive Anwendungen gleichzeitig aus, um sehr große Dateien oder Daten zu verarbeiten

Eine beliebte Allzweck-Programmiersprache ist Python. Es wird in einer Vielzahl von Branchen eingesetzt, darunter Desktop-Anwendungen, Webentwicklung und maschinelles Lernen. Glücklicherweise verfügt Python über eine einfache und leicht verständliche Syntax, die für Anfänger geeignet ist. In diesem Artikel verwenden wir Python, um die Summe der rechten Diagonalen einer Matrix zu berechnen. Was ist eine Matrix? In der Mathematik verwenden wir ein rechteckiges Array oder eine Matrix, um ein mathematisches Objekt oder seine Eigenschaften zu beschreiben. Es handelt sich um ein rechteckiges Array oder eine Tabelle, die in Zeilen und Spalten angeordnete Zahlen, Symbole oder Ausdrücke enthält. Zum Beispiel -234512367574. Dies ist also eine Matrix mit 3 Zeilen und 4 Spalten, ausgedrückt als 3*4-Matrix. Nun gibt es in der Matrix zwei Diagonalen, die Primärdiagonale und die Sekundärdiagonale

Eine Matrix ist eine Menge von Zahlen, die in Zeilen und Spalten angeordnet sind. Eine Matrix mit m Zeilen und n Spalten wird als mXn-Matrix bezeichnet, und m und n werden als ihre Dimensionen bezeichnet. Eine Matrix ist ein zweidimensionales Array, das in Python mithilfe von Listen oder NumPy-Arrays erstellt wird. Im Allgemeinen kann die Matrixmultiplikation durch Multiplikation der Zeilen der ersten Matrix mit den Spalten der zweiten Matrix erfolgen. Dabei sollte die Anzahl der Spalten der ersten Matrix gleich der Anzahl der Zeilen der zweiten Matrix sein. Eingabe- und Ausgabeszenario Angenommen, wir haben zwei Matrizen A und B. Die Abmessungen dieser beiden Matrizen betragen 2X3 bzw. 3X2. Die resultierende Matrix nach der Multiplikation hat 2 Zeilen und 1 Spalte. [b1,b2][a1,a2,a3]*[b3,b4]=[a1*b1+a2*b2+a3*a3][a4,a5,a6][b5,b6][a4*b2+a

Ein eindeutiger Primfaktor ist auch ein Faktor einer Primzahl. Bei diesem Problem müssen wir das Produkt aller eindeutigen Primfaktoren einer Zahl finden. Eine Primzahl ist eine Zahl mit nur zwei Faktoren, der Zahl und Eins. Hier werden wir versuchen, den besten Weg zu finden, das Produkt der eindeutigen Primfaktoren einer Zahl zu berechnen. Nummer. Nehmen wir ein Beispiel, um das Problem deutlicher zu veranschaulichen. Es gibt eine Zahl n=1092 und wir müssen das Produkt ihrer eindeutigen Primfaktoren finden. Die Primfaktoren von 1092 sind 2,3,7,13 und das Produkt ist 546. 2Eine einfache Möglichkeit, dies herauszufinden, besteht darin, alle Faktoren der Zahl zu finden und zu prüfen, ob der Faktor eine Primzahl ist. Wird es dann mit einer Zahl multipliziert, wird die Multiplikationsvariable zurückgegeben. Input:n=10Output:10 wird hier erklärt, die Eingabe

Der Benutzer muss die Reihenfolge der beiden Matrizen sowie die Elemente beider Matrizen eingeben. Vergleichen Sie dann die beiden Matrizen. Zwei Matrizen sind gleich, wenn beide Matrixelemente und -größen gleich sind. Wenn die Matrizen gleich groß, aber nicht gleich in den Elementen sind, werden die Matrizen als vergleichbar, aber nicht gleich dargestellt. Wenn die Größen und Elemente nicht übereinstimmen, können die Anzeigematrizen nicht verglichen werden. Das folgende Programm ist ein C-Programm, das verwendet wird, um zu vergleichen, ob zwei Matrizen gleich sind: #include<stdio.h>#include<conio.h>main(){ intA[10][10],B[10][10] ; In

Im Social-Media-Bereich ist der Matrix-Account-Backflow eine gängige Strategie. Durch die Umleitung des Traffics zwischen verschiedenen Accounts können sich Fans gegenseitig ergänzen und ihre Aktivität steigern. Der Rückfluss zwischen Matrixkonten erfordert eine sorgfältige Planung und Ausführung und ist keine einfache Angelegenheit. In diesem Artikel wird ausführlich erläutert, wie eine Umkehrung zwischen verschiedenen Konten implementiert wird und welche Bedeutung die Matrixumkehr hat. 1. Wie storniere ich das Konto in der Matrix? Unter den Matrixkonten ist es entscheidend, ein Hauptkonto auszuwählen, das zur Hauptverkehrsquelle und Plattform für die Veröffentlichung von Kerninhalten wird. Bei der Inhaltsplanung geht es darum, entsprechende Inhaltspläne auf der Grundlage von Kontomerkmalen und Zielgruppen zu formulieren, um eine gleichbleibende Qualität und einen gleichbleibenden Stil der Inhalte sicherzustellen. 3. Empfehlen und liken Sie sich gegenseitig: Bewerben und liken Sie sich gegenseitig zwischen Matrix-Konten und führen Sie die Fans durch angemessene Layouts und Arrangements.
