Jadual Kandungan
Contoh
4, 4, {2, 1}, {4, 4}, {"#...", ".##.", "...#", "..#."}
Salin selepas log masuk
" >
4, 4, {2, 1}, {4, 4}, {"#...", ".##.", "...#", "..#."}
Salin selepas log masuk
Rumah pembangunan bahagian belakang C++ Program C++ untuk mencari bilangan lompatan yang diperlukan oleh robot untuk mencapai sel tertentu dalam grid

Program C++ untuk mencari bilangan lompatan yang diperlukan oleh robot untuk mencapai sel tertentu dalam grid

Sep 17, 2023 pm 07:17 PM
robot grid bilangan lompatan

Program C++ untuk mencari bilangan lompatan yang diperlukan oleh robot untuk mencapai sel tertentu dalam grid

Andaikan kita mempunyai grid h x w. Grid diwakili dalam tatasusunan dua dimensi yang dipanggil 'initGrid', di mana setiap sel dalam grid diwakili oleh '#' atau '.'. '#' bermaksud terdapat halangan dalam grid, '.' bermakna terdapat laluan pada sel tersebut. Kini, robot diletakkan pada sel 'c' pada grid, yang mempunyai nombor baris x dan nombor lajur y. Robot perlu bergerak dari sel 'd' dengan nombor baris p dan nombor lajur q ke sel lain. Koordinat sel c dan d kedua-duanya diberikan sebagai pasangan integer. Kini robot boleh bergerak dari satu sel ke sel lain seperti berikut:

  • Jika sel yang robot ingin alihkan terletak secara menegak atau mendatar bersebelahan dengan sel semasa, robot boleh berjalan terus dari satu sel ke sel yang lain.

  • Robot boleh melompat ke mana-mana sel dalam kawasan 5x5 berpusat pada lokasi semasanya.

  • Robot hanya boleh bergerak ke sel lain dalam grid yang tidak mengandungi halangan. Robot juga tidak boleh meninggalkan grid.

Kita perlu mengetahui bilangan lompatan yang diperlukan untuk robot mencapai sasaran.

Jadi, jika input ialah h = 4, w = 4, c = {2, 1}, d = {4, 4}, initGrid = {"#...", ".##." , "...#", "..#."}, maka outputnya ialah 1. Robot hanya memerlukan satu lompatan untuk sampai ke destinasinya.

Untuk menyelesaikan masalah ini, kami akan mengikuti langkah berikut:

N:= 100
Define intger pairs s and t.
Define an array grid of size: N.
Define an array dst of size: N x N.
Define a struct node that contains integer values a, b, and e.
Define a function check(), this will take a, b,
   return a >= 0 AND a < h AND b >= 0 AND b < w
Define a function bfs(), this will take a, b,
   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:
      dst[i, j] := infinity
   dst[a, b] := 0
   Define one deque doubleq
   Insert a node containing values {a, b, and dst[a, b]} at the end of doubleq
   while (not doubleq is empty), do:
      nd := first element of doubleq
      if e value of nd > dst[a value of nd, b value of nd], then:
         Ignore the following part, skip to the next iteration
   for initialize diffx := -2, when diffx <= 2, update (increase diffx by 1), do:
   for initialize diffy := -2, when diffy <= 2, update (increase diffy by 1), do:
      tm := |diffx + |diffy||
      nx := a value of nd + diffx, ny = b value of nd + diffy
      if check(nx, ny) and grid[nx, ny] is same as &#39;.&#39;, then:
         w := (if tm > 1, then 1, otherwise 0)
         if dst[a value of nd, b value of nd] + w < dst[nx, ny], then:
            dst[nx, ny] := dst[a value of nd, b value of nd] + w
            if w is same as 0, then:
               insert node containing values ({nx, ny, dst[nx, ny]}) at the beginning of doubleq.
          Otherwise
insert node containing values ({nx, ny, dst[nx, ny]}) at the end of doubleq.
s := c
t := d
(decrease first value of s by 1)
(decrease second value of s by 1)
(decrease first value of t by 1)
(decrease second value of t by 1)
for initialize i := 0, when i < h, update (increase i by 1), do:
grid[i] := initGrid[i]
bfs(first value of s, second value of s)
print(if dst[first value of t, second value of t] is same as infinity, then -1, otherwise dst[first value of t, second value of t])
Salin selepas log masuk

Contoh

Mari kita lihat pelaksanaan di bawah untuk mendapatkan pemahaman yang lebih baik −#🎜🎜 #

#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9;
#define N 100
int h, w;
pair<int, int> s, t;
string grid[N];
int dst[N][N];
struct node {
   int a, b, e;
};
bool check(int a, int b) {
   return a >= 0 && a < h && b >= 0 && b < w;
}
void bfs(int a, int b) {
   for (int i = 0; i < h; i++) {
      for (int j = 0; j < w; j++)
         dst[i][j] = INF;
   }
   dst[a][b] = 0;
   deque<node> doubleq;
   doubleq.push_back({a, b, dst[a][b]});

   while (!doubleq.empty()) {
      node nd = doubleq.front();
      doubleq.pop_front();
      if (nd.e > dst[nd.a][nd.b])
         continue;
      for (int diffx = -2; diffx <= 2; diffx++) {
         for (int diffy = -2; diffy <= 2; diffy++) {
            int tm = abs(diffx) + abs(diffy);
            int nx = nd.a + diffx, ny = nd.b + diffy;
            if (check(nx, ny) && grid[nx][ny] == &#39;.&#39;) {
               int w = (tm > 1) ? 1 : 0;
               if (dst[nd.a][nd.b] + w < dst[nx][ny]) {
                  dst[nx][ny] = dst[nd.a][nd.b] + w;
                  if (w == 0)
                     doubleq.push_front({nx, ny, dst[nx][ny]});
                  else
                     doubleq.push_back({nx, ny, dst[nx][ny]});
               }
            }
         }
      }
   }
}
void solve(pair<int,int> c, pair<int, int> d, string initGrid[]){
   s = c;
   t = d;
   s.first--, s.second--, t.first--, t.second--;
   for(int i = 0; i < h; i++)
      grid[i] = initGrid[i];
   bfs(s.first, s.second);
   cout << (dst[t.first][t.second] == INF ? -1 :
      dst[t.first][t.second]) << &#39;\n&#39;;
}
int main() {
   h = 4, w = 4;
   pair<int,int> c = {2, 1}, d = {4, 4};
   string initGrid[] = {"#...", ".##.", "...#", "..#."};
   solve(c, d, initGrid);
   return 0;
}
Salin selepas log masuk

Input

4, 4, {2, 1}, {4, 4}, {"#...", ".##.", "...#", "..#."}
Salin selepas log masuk

Output

1
Salin selepas log masuk

Atas ialah kandungan terperinci Program C++ untuk mencari bilangan lompatan yang diperlukan oleh robot untuk mencapai sel tertentu dalam grid. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Ameca generasi kedua ada di sini! Dia boleh berkomunikasi dengan penonton dengan lancar, ekspresi mukanya lebih realistik, dan dia boleh bercakap berpuluh-puluh bahasa. Ameca generasi kedua ada di sini! Dia boleh berkomunikasi dengan penonton dengan lancar, ekspresi mukanya lebih realistik, dan dia boleh bercakap berpuluh-puluh bahasa. Mar 04, 2024 am 09:10 AM

Robot humanoid Ameca telah dinaik taraf kepada generasi kedua! Baru-baru ini, di Persidangan Komunikasi Mudah Alih Sedunia MWC2024, robot Ameca paling canggih di dunia muncul semula. Di sekitar venue, Ameca menarik sejumlah besar penonton. Dengan restu GPT-4, Ameca boleh bertindak balas terhadap pelbagai masalah dalam masa nyata. "Jom kita menari." Apabila ditanya sama ada dia mempunyai emosi, Ameca menjawab dengan beberapa siri mimik muka yang kelihatan sangat hidup. Hanya beberapa hari yang lalu, EngineeredArts, syarikat robotik British di belakang Ameca, baru sahaja menunjukkan hasil pembangunan terkini pasukan itu. Dalam video tersebut, robot Ameca mempunyai keupayaan visual dan boleh melihat serta menerangkan keseluruhan bilik dan objek tertentu. Perkara yang paling menakjubkan ialah dia juga boleh

Anotasi kotak sempadan berlebihan berbilang grid untuk pengesanan objek yang tepat Anotasi kotak sempadan berlebihan berbilang grid untuk pengesanan objek yang tepat Jun 01, 2024 pm 09:46 PM

1. Pengenalan Pada masa ini, pengesan objek utama ialah rangkaian dua peringkat atau satu peringkat berdasarkan rangkaian pengelas tulang belakang yang digunakan semula CNN dalam. YOLOv3 ialah salah satu pengesan satu peringkat tercanggih yang menerima imej input dan membahagikannya kepada matriks grid bersaiz sama. Sel grid dengan pusat sasaran bertanggungjawab untuk mengesan sasaran tertentu. Apa yang saya kongsikan hari ini ialah kaedah matematik baharu yang memperuntukkan berbilang grid kepada setiap sasaran untuk mencapai ramalan kotak sempadan ketat muat yang tepat. Para penyelidik juga mencadangkan peningkatan data salin-tampal luar talian yang berkesan untuk pengesanan sasaran. Kaedah yang baru dicadangkan dengan ketara mengatasi beberapa pengesan objek terkini dan menjanjikan prestasi yang lebih baik. 2. Rangkaian pengesanan sasaran latar belakang direka bentuk untuk digunakan

Robot pertama yang menyelesaikan tugas manusia secara autonomi muncul, dengan lima jari fleksibel dan kelajuan manusia luar biasa, dan model besar menyokong latihan angkasa maya Robot pertama yang menyelesaikan tugas manusia secara autonomi muncul, dengan lima jari fleksibel dan kelajuan manusia luar biasa, dan model besar menyokong latihan angkasa maya Mar 11, 2024 pm 12:10 PM

Minggu ini, FigureAI, sebuah syarikat robotik yang dilaburkan oleh OpenAI, Microsoft, Bezos, dan Nvidia, mengumumkan bahawa ia telah menerima hampir $700 juta dalam pembiayaan dan merancang untuk membangunkan robot humanoid yang boleh berjalan secara bebas dalam tahun hadapan. Dan Optimus Prime Tesla telah berulang kali menerima berita baik. Tiada siapa yang meragui bahawa tahun ini akan menjadi tahun apabila robot humanoid meletup. SanctuaryAI, sebuah syarikat robotik yang berpangkalan di Kanada, baru-baru ini mengeluarkan robot humanoid baharu, Phoenix. Pegawai mendakwa bahawa ia boleh menyelesaikan banyak tugas secara autonomi pada kelajuan yang sama seperti manusia. Pheonix, robot pertama di dunia yang boleh menyelesaikan tugas secara autonomi pada kelajuan manusia, boleh mencengkam, menggerakkan dan meletakkan setiap objek secara elegan di sisi kiri dan kanannya dengan perlahan. Ia boleh mengenal pasti objek secara autonomi

Bagaimanakah AI boleh menjadikan robot lebih autonomi dan boleh disesuaikan? Bagaimanakah AI boleh menjadikan robot lebih autonomi dan boleh disesuaikan? Jun 03, 2024 pm 07:18 PM

Dalam bidang teknologi automasi perindustrian, terdapat dua titik panas terkini yang sukar diabaikan: kecerdasan buatan (AI) dan Nvidia. Jangan ubah maksud kandungan asal, perhalusi kandungan, tulis semula kandungan, jangan teruskan: “Bukan itu sahaja, kedua-duanya berkait rapat, kerana Nvidia tidak terhad kepada unit pemprosesan grafik asalnya (GPU ), ia sedang mengembangkan GPUnya Teknologi ini meluas ke bidang kembar digital dan berkait rapat dengan teknologi AI yang baru muncul "Baru-baru ini, NVIDIA telah mencapai kerjasama dengan banyak syarikat industri, termasuk syarikat automasi industri terkemuka seperti Aveva, Rockwell Automation, Siemens. dan Schneider Electric, serta Teradyne Robotics dan syarikat MiR dan Universal Robotsnya. Baru-baru ini, Nvidiahascoll

2 bulan kemudian, robot humanoid Walker S boleh melipat pakaian 2 bulan kemudian, robot humanoid Walker S boleh melipat pakaian Apr 03, 2024 am 08:01 AM

Editor Laporan Kuasa Mesin: Wu Xin Versi domestik robot humanoid + pasukan model besar menyelesaikan tugas operasi bahan fleksibel yang kompleks seperti melipat pakaian buat kali pertama. Dengan pelancaran Figure01, yang mengintegrasikan model besar berbilang modal OpenAI, kemajuan berkaitan rakan domestik telah menarik perhatian. Baru semalam, UBTECH, "stok robot humanoid nombor satu" China, mengeluarkan demo pertama robot humanoid WalkerS yang disepadukan secara mendalam dengan model besar Baidu Wenxin, menunjukkan beberapa ciri baharu yang menarik. Kini, WalkerS, diberkati oleh keupayaan model besar Baidu Wenxin, kelihatan seperti ini. Seperti Rajah01, WalkerS tidak bergerak, tetapi berdiri di belakang meja untuk menyelesaikan satu siri tugasan. Ia boleh mengikut perintah manusia dan melipat pakaian

Sepuluh robot humanoid membentuk masa depan Sepuluh robot humanoid membentuk masa depan Mar 22, 2024 pm 08:51 PM

10 robot humanoid berikut sedang membentuk masa depan kita: 1. ASIMO: Dibangunkan oleh Honda, ASIMO ialah salah satu robot humanoid yang paling terkenal. Berdiri setinggi 4 kaki dan seberat 119 paun, ASIMO dilengkapi dengan penderia termaju dan keupayaan kecerdasan buatan yang membolehkannya menavigasi persekitaran yang kompleks dan berinteraksi dengan manusia. Fleksibiliti ASIMO menjadikannya sesuai untuk pelbagai tugas, daripada membantu orang kurang upaya kepada menyampaikan pembentangan di acara. 2. Pepper: Dicipta oleh Softbank Robotics, Pepper bertujuan untuk menjadi teman sosial bagi manusia. Dengan wajah ekspresif dan keupayaan untuk mengenali emosi, Pepper boleh mengambil bahagian dalam perbualan, membantu dalam tetapan runcit, dan juga memberikan sokongan pendidikan. Lada punya

Cloud Whale Xiaoyao 001 robot menyapu dan mengemop mempunyai 'otak'! | Cloud Whale Xiaoyao 001 robot menyapu dan mengemop mempunyai 'otak'! | Apr 26, 2024 pm 04:22 PM

Robot menyapu dan mengemop adalah salah satu perkakas rumah pintar yang paling popular di kalangan pengguna sejak beberapa tahun kebelakangan ini. Kemudahan operasi yang dibawanya, atau bahkan keperluan tanpa operasi, membolehkan orang yang malas membebaskan tangan mereka, membolehkan pengguna "membebaskan" daripada kerja rumah harian dan menghabiskan lebih banyak masa untuk perkara yang mereka sukai Peningkatan kualiti hidup dalam bentuk yang menyamar. Menunggang kegilaan ini, hampir semua jenama perkakas rumah di pasaran membuat robot menyapu dan mengemop mereka sendiri, menjadikan keseluruhan pasaran robot menyapu dan mengemop sangat meriah. Walau bagaimanapun, perkembangan pesat pasaran pasti akan membawa bahaya tersembunyi: banyak pengeluar akan menggunakan taktik laut mesin untuk menduduki lebih banyak bahagian pasaran dengan cepat, menyebabkan banyak produk baru tanpa sebarang titik peningkatan mereka adalah model "matryoshka" Tidak keterlaluan. Walau bagaimanapun, tidak semua robot menyapu dan mengemop

Robot humanoid boleh melakukan sihir, biarkan pasukan program Gala Festival Musim Bunga mengetahui lebih lanjut Robot humanoid boleh melakukan sihir, biarkan pasukan program Gala Festival Musim Bunga mengetahui lebih lanjut Feb 04, 2024 am 09:03 AM

Dalam sekelip mata, robot telah belajar melakukan sihir? Kelihatan ia mula-mula mengambil sudu air di atas meja, membuktikan kepada penonton bahawa tiada apa-apa di dalamnya... Kemudian, ia meletakkan objek seperti telur di tangannya, kemudian meletakkan sudu air itu semula di atas meja. dan mula "menjampi"... ...Apabila ia mengambil sudu air sekali lagi, satu keajaiban berlaku. Telur yang pada asalnya dimasukkan hilang, dan benda yang melompat keluar berubah menjadi bola keranjang... Mari lihat aksi berterusan sekali lagi: △ Animasi ini menunjukkan satu set aksi pada kelajuan 2x, dan ia mengalir dengan lancar hanya dengan menonton video berulang kali pada kelajuan 0.5x bolehkah ia berfungsi Akhirnya, saya menemui petunjuk: jika kelajuan tangan saya lebih pantas, saya mungkin dapat menyembunyikannya daripada musuh. Beberapa netizen mengeluh bahawa kemahiran sihir robot itu lebih tinggi daripada mereka sendiri: Mag adalah orang yang melakukan sihir ini untuk kami.

See all articles