


Program C++ untuk mengira jumlah kos yang diperlukan untuk robot menyelesaikan perjalanan dalam grid
Andaikan kita mempunyai grid saiz h x w. Setiap sel dalam grid mengandungi integer positif. Kini terdapat robot mencari laluan diletakkan pada sel tertentu (p, q) (di mana p ialah nombor baris dan q ialah nombor lajur) dan ia boleh bergerak ke sel (i, j). Operasi bergerak mempunyai kos khusus bersamaan dengan |p - i|. Kini terdapat perjalanan q dengan sifat berikut.
Setiap perjalanan mempunyai dua nilai (x, y) dan mempunyai nilai sepunya d.
Robot diletakkan pada sel dengan nilai x dan kemudian bergerak ke sel lain dengan nilai x + d.
Kemudian ia bergerak ke sel lain dengan nilai x + d + d. Proses ini akan berterusan sehingga robot mencapai sel dengan nilai lebih besar daripada atau sama dengan y.
y - x ialah gandaan d.
Memandangkan perjalanan ini, kita perlu mencari jumlah kos setiap perjalanan. Jika robot tidak boleh bergerak, kos perjalanan ialah 0.
Jadi jika input ialah h = 3, w = 3, d = 3, q = 1, grid = {{2, 6, 8}, {7, 3, 4}, {5, 1, 9 }} , perjalanan = {{3, 9}}, maka outputnya ialah 4.
3 pada sel (2, 2)
6 pada sel (1, 2)
9 pada sel (3, 3)
Jumlah kos = | (3 - 1) + (3 - 2) |.
Untuk menyelesaikan masalah ini kami akan mengikuti langkah berikut:
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)
Mari kita lihat pelaksanaan di bawah untuk pemahaman yang lebih baik −
Contoh
#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
Atas ialah kandungan terperinci Program C++ untuk mengira jumlah kos yang diperlukan untuk robot menyelesaikan perjalanan dalam grid. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



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

Saya melihat gambar menarik semalam iaitu "peta aras AI menggantikan laluan manusia". Seperti yang ditunjukkan dalam gambar, permainan ini dibahagikan kepada enam tahap berbeza, dari E1 hingga E8+. Kita boleh perhatikan daripada angka bahawa kecerdasan buatan (AI) menggantikan aplikasi manusia dalam bidang yang berbeza. Laluan medan aplikasi kecerdasan buatan ditentukan oleh kadar toleransi kesalahannya. Ringkasnya, toleransi kesilapan di sini merujuk kepada kos percubaan dan kesilapan. AI secara beransur-ansur akan menggantikan industri dengan kadar toleransi ralat yang lebih tinggi hingga lebih rendah dan secara beransur-ansur "menggantikan" pekerjaan manusia. Dahulu kita sering beranggapan bahawa karya kreatif bergantung kepada pemikiran manusia dan tidak mudah diganti. Walau bagaimanapun, dengan perkembangan kecerdasan buatan, pandangan ini nampaknya tidak sepenuhnya betul. Pekerjaan kreatif selalunya tidak mempunyai jawapan tetap

1. Buka desktop iPhone anda, cari dan klik untuk memasuki [Settings], 2. Klik untuk memasukkan [Camera] pada halaman tetapan. 3. Klik untuk menghidupkan suis di sebelah kanan [Grid].

Petua Reka Letak CSS: Amalan Terbaik untuk Melaksanakan Tataletak Ikon Grid Pekeliling Susun atur Grid ialah teknik reka letak yang biasa dan berkuasa dalam reka bentuk web moden. Susun atur ikon grid bulat adalah pilihan reka bentuk yang lebih unik dan menarik. Artikel ini akan memperkenalkan beberapa amalan terbaik dan contoh kod khusus untuk membantu anda melaksanakan reka letak ikon grid bulat. Struktur HTML Mula-mula, kita perlu menyediakan elemen bekas dan letakkan ikon dalam bekas ini. Kita boleh menggunakan senarai tidak tertib (<ul>) sebagai bekas dan item senarai (<l

Disusun oleh David Linsigao |. Produk yang dihasilkan oleh Yanzheng 51CTO Technology Stack (WeChat ID: blog51cto) Terdapat peraturan tidak bertulis dalam bidang teknologi: semua orang suka menggunakan teknologi orang lain. Tetapi untuk kebanyakan perniagaan, AI generatif nampaknya tidak sesuai dengan acuan itu dengan pantas AI Generatif memacu beberapa keputusan kritikal. Setiap organisasi menghadapi pilihan penting: sama ada untuk membina platform AI generatif tersuai secara dalaman atau membeli penyelesaian yang telah dibungkus daripada vendor AI (selalunya ditawarkan sebagai perkhidmatan awan yang mengutamakan volum dan peluang DIY). Ia pelik, tetapi sebabnya mungkin mengejutkan anda. Mereka mungkin membawa anda untuk memikirkan semula strategi genAI perusahaan anda 1. Lengkapkan penyesuaian dan kawalan Tulis semula kandungan seperti berikut: Bina

Sejak kemunculan GPT-3 pada tahun 2020, populariti ChatGPT sekali lagi membawa model bahasa berskala besar generatif keluarga GPT menjadi perhatian, dan mereka telah menunjukkan prestasi yang kukuh dalam pelbagai tugas. Walau bagaimanapun, skala besar model juga membawa peningkatan kos pengiraan dan peningkatan kesukaran penggunaan. Sebagai contoh, model GPT‑175B berjumlah sekurang-kurangnya 320GB storan dalam format separuh ketepatan (FP16) dan memerlukan sekurang-kurangnya lima GPU A100 dengan storan 80 GB untuk inferens. Pemampatan model pada masa ini merupakan kaedah yang biasa digunakan untuk mengurangkan kos pengiraan model besar, tetapi setakat ini, hampir semua yang sedia ada.

Katakan kita mempunyai grid hxw. 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 satu sel 'd' yang mempunyai nombor baris p dan nombor lajur q ke sel lain. Koordinat sel c dan d kedua-duanya diberikan sebagai pasangan integer. Robot kini boleh bergerak dari satu sel ke sel lain seperti berikut: Jika sel yang robot ingin dialihkan terletak secara menegak atau mendatar bersebelahan dengan sel semasa, robot boleh

Katakan kita mempunyai grid saiz hxw. Setiap sel dalam grid mengandungi integer positif. Kini terdapat robot mencari laluan yang diletakkan pada sel tertentu (p,q) (di mana p ialah nombor baris dan q ialah nombor lajur) dan ia boleh bergerak ke sel (i,j). Operasi bergerak mempunyai kos khusus bersamaan dengan |p-i|+|q-j|. Kini terdapat perjalanan q dengan sifat berikut. Setiap perjalanan mempunyai dua nilai (x, y) dan mempunyai nilai sepunya d. Robot diletakkan pada sel dengan nilai x dan kemudian bergerak ke sel lain dengan nilai x+d. Kemudian ia bergerak ke sel lain dengan nilai x+d+d. Proses ini akan berterusan sehingga robot mencapai sel dengan nilai lebih besar daripada atau sama dengan y. y-x ialah gandaan bagi d
