정수 변수 Number를 입력으로 제공합니다. 1부터 Number까지의 범위에 있는 요소를 포함하는 배열을 고려해 보겠습니다. 요소의 순서는 임의적일 수 있습니다. 배열에서 1번 연산을 수행하면 연산은 다음과 같습니다.
배열에서 두 요소 A와 B를 선택합니다.
배열에서 A와 B를 제거합니다.
A와 B를 바꿉니다. 제곱합이 배열에 추가됩니다.
결국 우리는 단일 정수 값을 얻습니다. 목표는 해당 요소에 대해 가능한 최대값을 찾는 것입니다.
최종 결과를 최대화하려면 A와 B를 선택하여 최대한 크게 만들어야 합니다.
가장 큰 A와 B를 찾기 위해 우선순위 큐를 사용하여 그 안에 요소 값을 저장합니다.
우선순위 대기열은 요소를 내림차순으로 저장합니다.
최상위 요소의 값이 가장 큰 등입니다. 따라서 두 요소를 모두 팝한 후 해당 사각형을 다시 대기열에 넣습니다.
원하는 결과를 얻으려면 1번을 누르고 누르세요.
입력 - 숫자=2
출력 - 배열 축소 후 단일 요소: 5
설명 - 배열의 요소가 [1 2]라고 가정
우선순위 큐 : 2 1
A=5, B=4 : A2+B2=1+4=5
마지막 요소 : 5
Input - Number=5
출력 - 배열 축소 후 단일 요소: 5
설명- 배열의 요소가 [5 1 2 4 3]
우선순위 큐에 삽입된 후: 5 4 3 2 1
A=5라고 가정합니다. , B=4: A 2+B2=25+16=41 : 41 3 2 1
A=41, B=3 : A2+B2=1681+9=1690 : 1690 2 1
A=1690, B=2 : A2+B2=1681+4=2856104 : 2856104 1
A=2856104 , B=1 : A2+B2 =1187163712+1= 1187163713 : 1187163713
마지막 요소: 1187163713
이 방법에서는 배열의 요소를 내림차순으로 저장하도록 우선순위 큐를 설정했습니다. 두 개의 가장 큰 요소를 팝하고 하나의 값만 남을 때까지 해당 제곱의 합을 다시 큐에 푸시합니다.
입력 변수 Number를 가져옵니다.
결과의 데이터 유형을 긴 정수로 설정 - lli
함수 축소Array(int Num)는 입력 숫자를 받아들이고 위 연산을 사용하여 계산된 가장 큰 단일 정수를 반환합니다.
우선순위 대기열 pQueue를 사용하세요.
while 루프를 사용하여 1부터 N까지의 숫자를 pQueue에 채웁니다.
i
이제 pQueue는 1부터 N까지의 정수를 크기 N으로 내림차순으로 저장합니다.
while 루프를 사용하여 크기가 1보다 클 때까지 pQueue를 순회합니다.
최대값을 var1=pQueue.top()으로 설정하고 팝합니다.
다음 최대값을 var2=pQueue.top()으로 설정하고 팝합니다.
var1을 정사각형으로 설정하고 var2를 정사각형으로 설정합니다.
var1+var2를 pQueue에 다시 푸시합니다.
while 루프가 끝나면 최상위 요소를 반환합니다.
메인 함수에서 결과를 인쇄하세요.
#include <bits/stdc++.h> using namespace std; #define lli long long int int reduceArray(int Num){ priority_queue<lli> pQueue; int i=1; while(i<=Num){ pQueue.push(i); i=i+1; } while (pQueue.size() > 1) { lli var1 = pQueue.top(); pQueue.pop(); lli var2 = pQueue.top(); pQueue.pop(); var1=var1*var1; var2=var2*var2; pQueue.push(var1+var2); } return pQueue.top(); } int main(){ int Number = 5; cout<<"Single element after array reduction: "<<reduceArray(Number); return 0; }
위 코드를 실행하면 다음과 같은 출력이 생성됩니다
Single element after array reduction: 1187163713
위 내용은 C++로 구현된 주어진 연산을 사용하여 배열을 정수로 줄입니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!