


Programme C++ : comptez le nombre d'opérations nécessaires pour que tous les cadeaux soient égaux en quantité
Supposons que nous ayons deux tableaux A et B, chacun de taille n. Il y a n cadeaux et nous voulons les offrir à des enfants. Le ième cadeau se compose de A[i] bonbons et de B[i] oranges. Lors d'un déménagement, nous pouvons sélectionner des cadeaux et effectuer l'une des actions suivantes -
retirer un bonbon de ce cadeau (le cas échéant) p>
retirer une orange de ce cadeau (le cas échéant) ;
Retirez un bonbon et un cadeau orange de ce cadeau (le cas échéant).
Tous les cadeaux doivent être créés égaux. Cela signifie qu'après une série de mouvements, les deux Les conditions doivent être remplies : A[0] = A[1] = ... = A[n-1] et B[0] = B[1] = ... = B[n-1]. nous devons Trouvez le nombre minimum d'étapes requises pour que tous les cadeaux offerts soient égaux.
Catégorie de problèmes
Les problèmes ci-dessus peuvent être résolus en appliquant des techniques gourmandes de résolution de problèmes. La technologie des algorithmes gourmands est le type d’algorithme qui fournit actuellement la meilleure solution Choisissez plutôt que d’essayer toutes les solutions possibles. La technologie des algorithmes gourmands également Utilisé pour résoudre des problèmes d'optimisation, tout comme son grand frère la programmation dynamique. Actif Lors de la programmation, vous devez parcourir tous les sous-problèmes possibles et trouver celui qui est optimal solution, mais elle présente un inconvénient : elle nécessite plus de temps et d’espace. Par conséquent, dans divers La technique gourmande en scénarios est utilisée pour trouver la meilleure solution au problème. Même si c'est vrai ne donne pas la meilleure solution dans toutes les situations, s'il est conçu avec soin, il peut produire une solution plus rapidement que Problème de programmation dynamique. Les techniques gourmandes fournissent des solutions optimales locales problème d'optimisation. Des exemples de cette technique incluent le minimum de Kruskal et Prim Algorithme Spanning Tree (MST), codage de l'arbre de Huffman, chemin le plus court à source unique de Dijkstra Questions etc
https://www.tutorialspoint.com/data_structurals_algorithms/greedy_algorithms.htm
https://www.tutorialspoint.com/data_structurals_algorithms/dynamic_programming.htm p>
Donc, si l'entrée de notre problème est comme ceci A = [3, 5, 6] ; B = [3, 2, 3], alors la sortie est 6, Puisqu'il a été initialement pris dans B, maintenant B[0] devient [2, 2, 3], puis pris dans A[1], donc A = [3, 4, 6], puis encore de A[1], donc A = [3, 3, 6], puis de A[2] et B[2], donc ils à [3, 3, 5] et [2, 2, 2], puis de A[2] à A = [3, 3, 4], encore de A[2] à Que ce soit [3, 3, 3]. Alors maintenant, A a le même nombre de bonbons et B a le même nombre d’oranges.
Étapes
Pour résoudre ce problème, nous suivrons les étapes suivantes -
minA := inf minB := inf kq := 0 n := size of A for initialize i := 0, when i < n, update (increase i by 1), do: minA := minimum of minA and A[i] for initialize i := 0, when i < n, update (increase i by 1), do: minB := minimum of minB and B[i] for initialize i := 0, when i < n, update (increase i by 1), do: kq := kq + maximum of (A[i] - minA) and (B[i] - minB) return kq
Exemple
Voyons l'implémentation suivante pour une meilleure compréhension -
#include <bits/stdc++.h> using namespace std; int solve(vector<int> A, vector<int> B){ int minA = 999, minB = 999, kq = 0; int n = A.size(); for (int i = 0; i < n; i++) minA = min(minA, A[i]); for (int i = 0; i < n; i++) minB = min(minB, B[i]); for (int i = 0; i < n; i++) kq += max(A[i] - minA, B[i] - minB); return kq; } int main(){ vector<int> A = { 3, 5, 6 }; vector<int> B = { 3, 2, 3 }; cout << solve(A, B) << endl; }
Input
{ 3, 5, 6 }, { 3, 2, 3 }
Output
6
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

En tant que plate-forme sociale de vidéos courtes la plus populaire au monde, Douyin a attiré l'attention et la participation de centaines de millions d'utilisateurs. Sur Douyin, les utilisateurs peuvent soutenir leurs créateurs préférés en envoyant des cadeaux, augmenter les interactions et exprimer leurs sentiments. Alors, quelle est la liste de prix de tous les cadeaux Douyin en 2024 ? 1. Quelle est la liste de prix de tous les cadeaux Douyin en 2024 ? Il convient de souligner que le prix des cadeaux Douyin est basé sur l'offre et la demande du marché, de sorte que les prix spécifiques des cadeaux peuvent être différents en 2024. Voici un aperçu des prix actuels des cadeaux Douyin, mais gardez à l'esprit qu'il s'agit uniquement d'une référence : les likes jouent un rôle important dans Douyin et sont l'un des moyens par lesquels les utilisateurs montrent leur amour et leur soutien pour le contenu. Actuellement, les likes sont gratuits et les utilisateurs peuvent donner leurs œuvres préférées à tout moment

WORD est un traitement de texte puissant. Nous pouvons utiliser Word pour éditer divers textes. Dans les tableaux Excel, nous maîtrisons les méthodes de calcul d'addition, de soustraction et de multiplicateurs. Ainsi, si nous avons besoin de calculer l'addition de valeurs numériques dans les tableaux Word, Comment soustraire le multiplicateur ? Puis-je utiliser uniquement une calculatrice pour le calculer ? La réponse est bien sûr non, WORD peut aussi le faire. Aujourd'hui, je vais vous apprendre à utiliser des formules pour calculer des opérations de base telles que l'addition, la soustraction, la multiplication et la division dans des tableaux dans des documents Word. Apprenons ensemble. Alors, aujourd'hui, permettez-moi de vous montrer en détail comment calculer l'addition, la soustraction, la multiplication et la division dans un document WORD ? Étape 1 : ouvrez un WORD, cliquez sur [Tableau] sous [Insérer] dans la barre d'outils et insérez un tableau dans le menu déroulant.

La multiplication matricielle générale (GEMM) est un élément essentiel de nombreuses applications et algorithmes, et constitue également l'un des indicateurs importants pour évaluer les performances du matériel informatique. Une recherche approfondie et l'optimisation de la mise en œuvre de GEMM peuvent nous aider à mieux comprendre le calcul haute performance et la relation entre les systèmes logiciels et matériels. En informatique, une optimisation efficace de GEMM peut augmenter la vitesse de calcul et économiser des ressources, ce qui est crucial pour améliorer les performances globales d’un système informatique. Une compréhension approfondie du principe de fonctionnement et de la méthode d'optimisation de GEMM nous aidera à mieux utiliser le potentiel du matériel informatique moderne et à fournir des solutions plus efficaces pour diverses tâches informatiques complexes. En optimisant les performances de GEMM

PyCharm est un environnement de développement intégré (IDE) Python très populaire. Il fournit une multitude de fonctions et d'outils pour rendre le développement Python plus efficace et plus pratique. Cet article vous présentera les méthodes de fonctionnement de base de PyCharm et fournira des exemples de code spécifiques pour aider les lecteurs à démarrer rapidement et à maîtriser l'utilisation de l'outil. 1. Téléchargez et installez PyCharm Tout d'abord, nous devons nous rendre sur le site officiel de PyCharm (https://www.jetbrains.com/pyc

sudo (exécution du superutilisateur) est une commande clé dans les systèmes Linux et Unix qui permet aux utilisateurs ordinaires d'exécuter des commandes spécifiques avec les privilèges root. La fonction de sudo se reflète principalement dans les aspects suivants : Fournir un contrôle des autorisations : sudo réalise un contrôle strict sur les ressources système et les opérations sensibles en autorisant les utilisateurs à obtenir temporairement les autorisations de superutilisateur. Les utilisateurs ordinaires ne peuvent obtenir des privilèges temporaires via sudo qu'en cas de besoin et n'ont pas besoin de se connecter en permanence en tant que superutilisateur. Sécurité améliorée : en utilisant sudo, vous pouvez éviter d'utiliser le compte root lors des opérations de routine. L'utilisation du compte root pour toutes les opérations peut entraîner des dommages inattendus au système, car toute opération incorrecte ou imprudente bénéficiera de toutes les autorisations. et

Étapes de fonctionnement et précautions de LinuxDeploy LinuxDeploy est un outil puissant qui peut aider les utilisateurs à déployer rapidement diverses distributions Linux sur des appareils Android, permettant aux utilisateurs de découvrir un système Linux complet sur leurs appareils mobiles. Cet article présentera en détail les étapes de fonctionnement et les précautions de LinuxDeploy et fournira des exemples de code spécifiques pour aider les lecteurs à mieux utiliser cet outil. Étapes de l'opération : Installer LinuxDeploy : Tout d'abord, installez

Vraisemblablement, de nombreux utilisateurs ont plusieurs ordinateurs inutilisés à la maison et ont complètement oublié le mot de passe de mise sous tension car ils n'ont pas été utilisés depuis longtemps. Ils aimeraient donc savoir quoi faire s'ils oublient le mot de passe ? Alors jetons un coup d’œil ensemble. Que faire si vous oubliez d'appuyer sur F2 pour le mot de passe de démarrage Win10 ? 1. Appuyez sur le bouton d'alimentation de l'ordinateur, puis appuyez sur F2 lorsque vous allumez l'ordinateur (différentes marques d'ordinateurs ont des boutons différents pour accéder au BIOS). 2. Dans l'interface du BIOS, recherchez l'option de sécurité (l'emplacement peut être différent selon les marques d'ordinateurs). Habituellement dans le menu des paramètres en haut. 3. Recherchez ensuite l’option SupervisorPassword et cliquez dessus. 4. À ce stade, l'utilisateur peut voir son mot de passe, et en même temps trouver Activé à côté et le basculer sur Dis.

Avec la popularité des smartphones, la fonction capture d’écran est devenue l’une des compétences essentielles pour l’utilisation quotidienne des téléphones portables. En tant que l'un des téléphones mobiles phares de Huawei, la fonction de capture d'écran du Huawei Mate60Pro a naturellement attiré beaucoup d'attention de la part des utilisateurs. Aujourd'hui, nous partagerons les étapes de capture d'écran du téléphone mobile Huawei Mate60Pro, afin que tout le monde puisse prendre des captures d'écran plus facilement. Tout d'abord, le téléphone mobile Huawei Mate60Pro propose une variété de méthodes de capture d'écran et vous pouvez choisir la méthode qui vous convient en fonction de vos habitudes personnelles. Ce qui suit est une introduction détaillée à plusieurs interceptions couramment utilisées :
