목차
Example
Input
Output
백엔드 개발 C++ 로봇이 그리드에서 이동을 완료하는 데 필요한 총 비용을 계산하는 C++ 프로그램

로봇이 그리드에서 이동을 완료하는 데 필요한 총 비용을 계산하는 C++ 프로그램

Aug 25, 2023 pm 04:53 PM
비용 그리드 컴퓨팅 로봇

로봇이 그리드에서 이동을 완료하는 데 필요한 총 비용을 계산하는 C++ 프로그램

h x w 크기의 그리드가 있다고 가정합니다. 그리드의 각 셀에는 양의 정수가 포함되어 있습니다. 이제 특정 셀(p, q)(p는 행 번호, q는 열 번호)에 경로 찾기 로봇이 배치되어 셀(i, j)로 이동할 수 있습니다. 이동 작업의 특정 비용은 |p - i| + |q - j|입니다. 이제 다음 속성을 가진 q개의 여행이 있습니다.

  • 각 여행에는 두 개의 값(x, y)이 있으며 공통 값 d가 있습니다.

  • 로봇은 x 값을 가진 셀에 배치된 다음 x + d 값을 가진 다른 셀로 이동합니다.

  • 그런 다음 x + d + d 값을 가진 다른 셀로 이동합니다. 이 과정은 로봇이 y보다 크거나 같은 값을 갖는 셀에 도달할 때까지 계속됩니다.

  • y - x는 d의 배수입니다.

이러한 여행을 고려하여 각 여행의 총 비용을 찾아야 합니다. 로봇이 움직일 수 없으면 이동 비용은 0입니다.

그러므로 입력이 h = 3, w = 3, d = 3, q ​​​​= 1, 그리드 = {{2, 6, 8}, {7, 3, 4}, {5, 1, 9 }} , 여행 = {{3, 9}}이면 출력은 4입니다.

3 셀(2, 2)

6 셀(1, 2)

9 셀(3, 3)

총 비용 = | (1 - 2) + (2 - 2) | (3 - 1) + (3 - 2) = 4.

이 문제를 해결하기 위해 다음 단계를 따릅니다.

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)
로그인 후 복사

더 나은 이해를 위해 아래 구현을 살펴보겠습니다. −

Example

#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
로그인 후 복사

위 내용은 로봇이 그리드에서 이동을 완료하는 데 필요한 총 비용을 계산하는 C++ 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

정확한 객체 감지를 위한 다중 그리드 중복 경계 상자 주석 정확한 객체 감지를 위한 다중 그리드 중복 경계 상자 주석 Jun 01, 2024 pm 09:46 PM

1. 서론 현재 주요 객체 검출기는 Deep CNN의 용도 변경된 백본 분류기 네트워크를 기반으로 하는 2단계 또는 단일 단계 네트워크입니다. YOLOv3은 입력 이미지를 수신하고 이를 동일한 크기의 그리드 매트릭스로 나누는 잘 알려진 최첨단 단일 스테이지 검출기 중 하나입니다. 표적 중심이 있는 그리드 셀은 특정 표적을 탐지하는 역할을 담당합니다. 오늘 제가 공유하는 것은 정확한 딱 맞는 경계 상자 예측을 달성하기 위해 각 대상에 여러 그리드를 할당하는 새로운 수학적 방법입니다. 연구원들은 또한 표적 탐지를 위한 효과적인 오프라인 복사-붙여넣기 데이터 향상 기능을 제안했습니다. 새로 제안된 방법은 현재의 일부 최첨단 객체 감지기보다 훨씬 뛰어난 성능을 발휘하며 더 나은 성능을 약속합니다. 2. 배경 타겟 탐지 네트워크는 다음을 사용하도록 설계되었습니다.

로드맵은 AI가 인간 직업을 '대체'하는 추세를 보여줍니다. 로드맵은 AI가 인간 직업을 '대체'하는 추세를 보여줍니다. Jan 04, 2024 pm 04:32 PM

어제 '인간의 길을 대체하는 AI 레벨맵'이라는 흥미로운 사진을 봤습니다. 그림에서 볼 수 있듯이 게임은 E1부터 E8+까지 6가지 레벨로 구분됩니다. 우리는 인공지능(AI)이 다양한 분야에서 인간의 응용 프로그램을 대체하고 있음을 그림에서 볼 수 있습니다. 인공지능의 적용 분야 경로는 내결함성 비율에 따라 결정됩니다. 간단히 말해서, 여기서 오류 허용 오차는 시행착오의 비용을 의미합니다. AI는 점차적으로 오류 허용 비율이 높거나 낮은 산업을 대체하고 점차적으로 인간 직업을 "대체"할 것입니다. 과거에 우리는 창의적인 작업이 인간의 사고에 의존하고 쉽게 대체되지 않는다고 종종 생각했습니다. 그러나 인공지능의 발달로 인해 이러한 견해는 완전히 옳은 것 같지는 않다. 창의적인 직업에는 정해진 답이 없는 경우가 많습니다

iPhone에서 카메라 그리드를 설정하는 단계 iPhone에서 카메라 그리드를 설정하는 단계 Mar 26, 2024 pm 07:21 PM

1. Apple 휴대폰의 바탕 화면을 열고 [설정]을 찾아 클릭하여 들어갑니다. 2. 설정 페이지에서 클릭하여 [카메라]로 들어갑니다. 3. [그리드] 오른쪽의 스위치를 클릭하여 켜세요.

CSS 레이아웃 팁: 원형 그리드 아이콘 레이아웃 구현 모범 사례 CSS 레이아웃 팁: 원형 그리드 아이콘 레이아웃 구현 모범 사례 Oct 20, 2023 am 10:46 AM

CSS 레이아웃 팁: 원형 그리드 아이콘 레이아웃 구현을 위한 모범 사례 그리드 레이아웃은 현대 웹 디자인에서 일반적이고 강력한 레이아웃 기술입니다. 원형 그리드 아이콘 레이아웃은 더욱 독특하고 흥미로운 디자인 선택입니다. 이 문서에서는 원형 그리드 아이콘 레이아웃을 구현하는 데 도움이 되는 몇 가지 모범 사례와 특정 코드 예제를 소개합니다. HTML 구조 먼저 컨테이너 요소를 설정하고 이 컨테이너에 아이콘을 배치해야 합니다. 순서가 지정되지 않은 목록(&lt;ul&gt;)을 컨테이너로 사용할 수 있으며 목록 항목(&lt;l

클라우드의 생성적 AI: 구축 또는 구매? 클라우드의 생성적 AI: 구축 또는 구매? Dec 19, 2023 pm 08:15 PM

David Linsigao 작성 | Yanzheng 51CTO Technology Stack에서 제작한 제품(WeChat ID: blog51cto) 기술 분야에는 암묵적인 규칙이 있습니다. 모든 사람은 다른 사람의 기술을 사용하는 것을 좋아합니다. 그러나 많은 기업에서 생성적 AI는 이러한 틀에 맞지 않는 것 같습니다. 모든 조직은 사내에서 맞춤형 생성 AI 플랫폼을 구축할지 아니면 AI 공급업체(종종 클라우드 서비스로 제공)에서 사전 패키지된 솔루션을 구매할지 여부와 같은 중요한 선택에 직면합니다. 이상하지만 그 이유가 여러분을 놀라게 할 수도 있습니다. 엔터프라이즈 genAI 전략을 다시 생각하게 만들 수도 있습니다. 1. 완벽한 사용자 정의 및 제어 콘텐츠를 다음과 같이 다시 작성하세요.

최초의 1000억 모델 압축 알고리즘인 SparseGPT가 출시되어 높은 정확도를 유지하면서 컴퓨팅 전력 비용을 절감합니다. 최초의 1000억 모델 압축 알고리즘인 SparseGPT가 출시되어 높은 정확도를 유지하면서 컴퓨팅 전력 비용을 절감합니다. Apr 12, 2023 pm 01:01 PM

2020년 GPT-3이 등장한 이후 ChatGPT의 인기로 인해 GPT 제품군의 생성적 대규모 언어 모델이 다시 한 번 주목을 받았으며 다양한 작업에서 강력한 성능을 보여주었습니다. 그러나 모델의 규모가 크면 계산 비용도 증가하고 배포 난이도도 높아집니다. 예를 들어, GPT‑175B 모델은 반정밀도(FP16) 형식으로 총 저장 공간이 최소 320GB이므로 추론을 위해 80GB 저장 공간을 갖춘 A100 GPU가 5개 이상 필요합니다. 모델 압축은 현재 대형 모델의 계산 비용을 줄이기 위해 일반적으로 사용되는 방법이지만 현재까지 거의 모든 기존

로봇이 그리드의 특정 셀에 도달하기 위해 필요한 점프 횟수를 찾는 C++ 프로그램 로봇이 그리드의 특정 셀에 도달하기 위해 필요한 점프 횟수를 찾는 C++ 프로그램 Sep 17, 2023 pm 07:17 PM

hxw 그리드가 있다고 가정해 보겠습니다. 그리드는 'initGrid'라는 2차원 배열로 표시되며 그리드의 각 셀은 '#' 또는 '.'으로 표시됩니다. '#'은 그리드에 장애물이 있음을 의미하고, '.'은 해당 셀에 경로가 있음을 의미합니다. 이제 행 번호 x와 열 번호 y가 있는 그리드의 'c' 셀에 로봇이 배치됩니다. 로봇은 행 번호 p와 열 번호 q가 있는 하나의 셀 'd'에서 다른 셀로 이동해야 합니다. 셀 좌표 c와 d는 모두 정수 쌍으로 제공됩니다. 이제 로봇은 다음과 같이 한 셀에서 다른 셀로 이동할 수 있습니다. 로봇이 이동하려는 셀이 현재 셀에 수직 또는 수평으로 인접해 있는 경우 로봇은 다음을 수행할 수 있습니다.

로봇이 그리드에서 이동을 완료하는 데 필요한 총 비용을 계산하는 C++ 프로그램 로봇이 그리드에서 이동을 완료하는 데 필요한 총 비용을 계산하는 C++ 프로그램 Aug 25, 2023 pm 04:53 PM

hxw 크기의 그리드가 있다고 가정합니다. 그리드의 각 셀에는 양의 정수가 포함되어 있습니다. 이제 특정 셀(p, q)(p는 행 번호, q는 열 번호)에 길찾기 로봇이 배치되어 해당 셀(i, j)로 이동할 수 있습니다. 이동 작업의 특정 비용은 |p-i|+|q-j|와 같습니다. 이제 다음 속성을 가진 q개의 여행이 있습니다. 각 여행에는 두 가지 값(x, y)과 공통 값 d가 있습니다. 로봇은 x 값을 가진 셀에 배치된 다음 x+d 값을 가진 다른 셀로 이동합니다. 그런 다음 x+d+d 값을 가진 다른 셀로 이동합니다. 이 과정은 로봇이 y보다 크거나 같은 값을 갖는 셀에 도달할 때까지 계속됩니다. y-x는 d의 배수입니다

See all articles