


Programme C++ pour calculer le coût total requis pour qu'un robot effectue un voyage dans une grille
Supposons que nous ayons une grille de taille h x l. Chaque cellule de la grille contient un entier positif. Il existe maintenant un robot de recherche de chemin placé sur une cellule spécifique (p, q) (où p est le numéro de ligne et q est le numéro de colonne) et il peut se déplacer vers la cellule (i, j). L'opération de déplacement a un coût spécifique égal à |p - i| + |q - j|. Il existe désormais q voyages avec les propriétés suivantes.
Chaque trajet a deux valeurs (x, y) et a une valeur commune d.
Le robot est placé sur une cellule de valeur x puis se déplace vers une autre cellule de valeur x + d.
Ensuite, il se déplace vers une autre cellule avec la valeur x + d + d. Ce processus se poursuivra jusqu'à ce que le robot atteigne une cellule avec une valeur supérieure ou égale à y.
y - x est un multiple de d.
Compte tenu de ces déplacements, il faut trouver le coût total de chaque déplacement. Si le robot ne peut pas bouger, le coût du déplacement est de 0.
Donc, si l'entrée est h = 3, w = 3, d = 3, q = 1, grille = {{2, 6, 8}, {7, 3, 4}, {5, 1, 9 }} , trips = {{3, 9}}, alors la sortie sera 4.
3 sur cellule (2, 2)
6 sur cellule (1, 2)
9 sur cellule (3, 3)
Coût total = | (3-1) + (3-2) = 4.
Pour résoudre ce problème, nous suivrons les étapes suivantes :
Define one map loc for initialize i := 0, when i < h, update (increase i by 1), do: for initialize j := 0, when j < w, update (increase j by 1), do: loc[grid[i, j]] := new pair(i, j) Define an array dp[d + 1] for initialize i := 1, when i <= d, update (increase i by 1), do: j := i while j < w * h, do: n := j + d if j + d > w * h, then: Come out from the loop dx := |first value of loc[n] - first value of loc[j]| dy := |second value of loc[n] - second value of loc[j]| j := j + d insert dx + dy at the end of dp[i] for initialize j := 1, when j < size of dp[i], update (increase j by 1), do: dp[i, j] := dp[i, j] + dp[i, j - 1] for initialize i := 0, when i < q, update (increase i by 1), do: tot := 0 le := first value of trips[i] ri := second value of trips[i] if ri mod d is same as 0, then: f := d Otherwise, f := ri mod d pxl := (le - f) / d pxr := (ri - f) / d if le is same as f, then: if ri is same as f, then: tot := 0 Otherwise tot := tot + (dp[f, pxr - 1] - 0) Otherwise if ri is same as f, then: tot := 0 Otherwise tot := tot + dp[f, pxr - 1] - dp[f, pxl - 1] print(tot)
Voyons l'implémentation ci-dessous pour une meilleure compréhension −
Exemple
#include <bits/stdc++.h> using namespace std; const int INF = 1e9; void solve(int h, int w, int d, int q, vector<vector<int>> grid, vector<pair<int, int>> trips) { map<int, pair<int, int>> loc; for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) loc[grid[i][j]] = make_pair(i, j); } vector<int> dp[d + 1]; for (int i = 1; i <= d; i++) { int j = i; while (j < w * h) { int n = j + d; if (j + d > w * h) break; int dx = abs(loc[n].first - loc[j].first); int dy = abs(loc[n].second - loc[j].second); j += d; dp[i].push_back(dx + dy); } for (j = 1; j < dp[i].size(); j++) dp[i][j] += dp[i][j - 1]; } for (int i = 0; i < q; i++) { int tot = 0; int le, ri; le = trips[i].first; ri = trips[i].second; int f; if (ri % d == 0) f = d; else f = ri % d; int pxl, pxr; pxl = (le - f) / d; pxr = (ri - f) / d; if (le == f){ if (ri == f) tot = 0; else tot += (dp[f][pxr - 1] - 0); } else { if (ri == f) tot = 0; else tot += dp[f][pxr - 1] - dp[f][pxl - 1]; } cout<< tot << endl; } } int main() { int h = 3, w = 3, d = 3, q = 1; vector<vector<int>> grid = {{2, 6, 8}, {7, 3, 4}, {5, 1, 9}}; vector<pair<int, int>> trips = {{3, 9}}; solve(h, w, d, q, grid, trips); return 0; }
Input
3, 3, 3, 1, {{2, 6, 8}, {7, 3, 4}, {5, 1, 9}}, {{3, 9}}
Output
4
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)

1. Introduction Actuellement, les principaux détecteurs d'objets sont des réseaux à deux étages ou à un étage basés sur le réseau de classificateurs de base réutilisé du Deep CNN. YOLOv3 est l'un de ces détecteurs à un étage de pointe bien connus qui reçoit une image d'entrée et la divise en une matrice de grille de taille égale. Les cellules de grille avec des centres cibles sont chargées de détecter des cibles spécifiques. Ce que je partage aujourd'hui est une nouvelle méthode mathématique qui alloue plusieurs grilles à chaque cible pour obtenir une prédiction précise et précise du cadre de délimitation. Les chercheurs ont également proposé une amélioration efficace des données par copier-coller hors ligne pour la détection des cibles. La méthode nouvellement proposée surpasse considérablement certains détecteurs d’objets de pointe actuels et promet de meilleures performances. 2. Le réseau de détection de cibles en arrière-plan est conçu pour utiliser

J'ai vu hier une image intéressante qui était une "carte de niveau de l'IA remplaçant les chemins humains". Comme le montre l'image, le jeu est divisé en six niveaux différents, de E1 à E8+. On peut observer sur la figure que l’intelligence artificielle (IA) remplace les applications humaines dans différents domaines. Le cheminement du domaine d’application de l’intelligence artificielle est déterminé par son taux de tolérance aux pannes. En bref, la tolérance aux erreurs fait ici référence au coût des essais et des erreurs. L’IA remplacera progressivement les industries ayant des taux de tolérance aux erreurs plus élevés ou plus faibles et « remplacera » progressivement les occupations humaines. Dans le passé, nous pensions souvent que le travail créatif reposait sur la pensée humaine et n’était pas facile à remplacer. Cependant, avec le développement de l’intelligence artificielle, cette vision ne semble plus tout à fait exacte. Les emplois créatifs n’ont souvent pas de réponses fixes

1. Ouvrez le bureau de votre iPhone, recherchez et cliquez pour accéder à [Paramètres], 2. Cliquez pour accéder à [Caméra] sur la page des paramètres. 3. Cliquez pour activer le commutateur sur le côté droit de [Grille].

Conseils de mise en page CSS : meilleures pratiques pour la mise en œuvre de la mise en page des icônes de grille circulaire La mise en page en grille est une technique de mise en page courante et puissante dans la conception Web moderne. La disposition des icônes en grille circulaire est un choix de conception plus unique et plus intéressant. Cet article présente quelques bonnes pratiques et des exemples de code spécifiques pour vous aider à implémenter une disposition d'icônes de grille circulaire. Structure HTML Tout d'abord, nous devons configurer un élément conteneur et placer l'icône dans ce conteneur. Nous pouvons utiliser une liste non ordonnée (<ul>) comme conteneur, et les éléments de la liste (<l

Depuis l’émergence de GPT-3 en 2020, la popularité de ChatGPT a une fois de plus mis sous les projecteurs les modèles de langage génératifs à grande échelle de la famille GPT, et ils ont montré de solides performances dans diverses tâches. Cependant, l’échelle énorme du modèle entraîne également une augmentation des coûts de calcul et une difficulté de déploiement accrue. Par exemple, le modèle GPT‑175B totalise au moins 320 Go de stockage au format demi-précision (FP16), nécessitant au moins cinq GPU A100 avec 80 Go de stockage pour l'inférence. La compression de modèle est actuellement une méthode couramment utilisée pour réduire le coût de calcul des grands modèles, mais jusqu'à présent, presque toutes les méthodes existantes

Compilé par David Linsigao | Produits produits par Yanzheng 51CTO Technology Stack (WeChat ID : blog51cto) Il existe une règle non écrite dans le domaine de la technologie : tout le monde aime utiliser la technologie des autres. Mais pour de nombreuses entreprises, l’IA générative ne semble pas correspondre à ce modèle. L’IA générative conduit rapidement à certaines décisions cruciales. Chaque organisation est confrontée à un choix important : créer une plateforme d'IA générative personnalisée en interne ou acheter une solution préemballée auprès d'un fournisseur d'IA (souvent proposée sous forme de service cloud). Le bricolage favorise le volume et les opportunités. C'est bizarre, mais la raison pourrait vous surprendre. Ils pourraient même vous amener à repenser votre stratégie genAI d'entreprise 1. Personnalisation et contrôle complets Réécrivez le contenu comme suit : Créez un

Dans cet article, nous sommes confrontés à un problème dans lequel nous devons trouver le nombre total de chemins du point A au point B, où A et B sont des points fixes, c'est-à-dire A est le point du coin supérieur gauche de la grille et B est le point inférieur. point du coin droit, par exemple −Input:N=5Output:252Input:N=4Output:70Input:N=3Output:20 Dans le problème donné, nous pouvons formaliser la réponse et dériver le résultat à travers des observations simples. Méthode de recherche de solution Dans cette méthode, nous dérivons une formule en observant que lorsque nous traversons la grille de A à B, nous devons aller à droite n fois et descendre n fois, ce qui signifie que nous devons trouver toutes les combinaisons de chemins possibles, nous obtenons donc

Disons que nous avons une grille hxw. La grille est représentée dans un tableau bidimensionnel appelé « initGrid », où chaque cellule de la grille est représentée par un « # » ou un « . ». '#' signifie qu'il y a un obstacle dans la grille, '.' signifie qu'il y a un chemin sur cette cellule. Maintenant, un robot est placé sur une cellule « c » de la grille qui a le numéro de ligne x et le numéro de colonne y. Le robot doit se déplacer d'une cellule « d » qui porte le numéro de ligne p et le numéro de colonne q vers une autre cellule. Les coordonnées de cellule c et d sont toutes deux données sous forme de paires d'entiers. Le robot peut désormais se déplacer d'une cellule à une autre comme suit : Si la cellule vers laquelle le robot souhaite se déplacer est située verticalement ou horizontalement à côté de la cellule actuelle, le robot peut
