Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

주어진 정수에서 가능한 최대 합계를 찾는 C++ 프로그램

<시간/>

두 개의 정수 n과 m이 주어지고 네 개의 정수 {ai, bi, ci, di}를 포함하는 k 개의 정수 튜플이 있다고 가정합니다. 4개의 배열 a, b, c, d가 주어지고 a[i]는 i번째 튜플의 a 값을 나타냅니다. 이제 n개의 양의 정수와 1 <=dp[1]

따라서 입력이 n =4, m =5, k =4, a ={2, 2, 3, 5}, b ={4, 3, 4, 6}, c ={4, 3, 3, 4}, d ={110, 20, 20, 40}이면 출력은 130이 됩니다.

단계

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

크기가 각각 100, 100, 100, 100, 10인 배열 A, B, C, D 및 dp를 정의합니다. depthSearch() 함수를 정의하면 c가 n과 같으면 c, l이 필요합니다. then:total :=0 for initialize i :=0, i  

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

#include 네임스페이스 std;int n, m, k, res =0;int A[100], B[100], C[100], D[100], dp[ 10]; 무효 depthSearch(int c, int l){ if(c ==n){ int 총계 =0; for(int i =0; i  

입력

4, 5, 4, {2, 2, 3, 5}, {4, 3, 4, 6}, {4, 3, 3, 4}, {110, 20, 20, 40} 

출력

130