#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--){
int N;
cin>>N;
vector<vector<int>> shops(N,vector<int>(3));//What does shops(N,vector<int>(3)) mean?
for(int i=0;i<N;i++){
for(int j=0;j<3;j++){
cin>>shops[i][j];//doubt
}
}
vector<vector<int>> DP(N,vector<int>(3));
for(int i=0;i<3;i++){
DP[0][i]=shops[0][i];
}
for(int i=1;i<N;i++){
DP[i][0] = min(DP[i-1][1] , DP[i-1][2]) + shops[i][0];
DP[i][1] = min(DP[i-1][0] , DP[i-1][2]) + shops[i][1];
DP[i][2] = min(DP[i-1][0] , DP[i-1][1]) + shops[i][2];
}
int ans = min(min(DP[N-1][0], DP[N-1][1]) , DP[N-1][2]);
cout<<ans<<"\n";
}
}
以上是此问题的实施https://www.hackerearth.com/code-monk-dynamic-programming/algorithm/samu-and-shopping/ 在这里,我们使用向量声明了一个2D矩阵,但在输入过程中我们传递了一个奇异的数据Ex:1 50 50 我很困惑,因为它应该有2个项目/数据,因为它是一个2D矩阵
答案 0 :(得分:0)
你的例子:
-1 50 50
表示:将值:-1放入矩阵50,50的单元格中?
注意:这是整数的2D矩阵。如果你想要&#34; 2项/数据&#34;你可能需要一个整数对的二维矩阵,例如:
std::vector<std::vector<std::pair<int, int>>>