1932 : The Triangle
12841 ワード
何の問題ですか。
注釈テンプレートを利用して最高価格を求める問題.
試行錯誤回数
一度の成功
観察する
最初の試み:コミュニケーション
一番左のインデックスは0で、一番右のインデックスは列です.問題で最低価格を要求したので、最低価格にしました.#include <stdio.h>
int D[500][500];
int main()
{
int N,i,j,M=0;
scanf("%d",&N);
for(i=0;i<N;i++) {
for(j=0;j<=i;j++) scanf("%d",&D[i][j]);
if(i) {
for(j=0;j<=i;j++) {
if(!j) D[i][j]+=D[i-1][j];
else if(j==i) D[i][j]+=D[i-1][j-1];
else D[i][j]+=D[i-1][j-1]>D[i-1][j]?D[i-1][j-1]:D[i-1][j];
}
}
}
for(j=0;j<N;j++)
if(M<D[i-1][j]) M=D[i-1][j];
printf("%d",M);
}
前に解いた1149問について反省し,今回は直接代入演算子(+=)を用いた.
他の人の答え
加算は交換法則を成立させる.だから降りるときはもっと作ることができますが、遡ることもできます.
また、最低価格の問題条件特性を利用して、0に初期化された部分(例えば、三角形の一番左より左側の部分)は無条件に除外される.コードをさらに減らすことができます.#include <stdio.h>
#define MAX(a,b) (a>b ? a : b)
int main()
{
int i,j,n,A[501][501];
scanf("%d",&n);
for(i=1;i<=n;i++) for(j=1;j<=i;j++) scanf("%d",A[i]+j);
for(i=n-1;i;i--) for(j=1;j<=i;j++)
A[i][j]+=MAX(A[i+1][j],A[i+1][j+1]);
printf("%d",A[1][1]);
return 0;
}
f52985のソース
-> https://www.acmicpc.net/source/358547
そしてC言語マクロで記述できることが分かった.これから必要なときも使ってみます
一行が平らである.
これは、以前に似たようなタイプが解かれていたため、問題です.
Reference
この問題について(1932 : The Triangle), 我々は、より多くの情報をここで見つけました
https://velog.io/@qoo0302/1932-The-Triangle
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
#include <stdio.h>
int D[500][500];
int main()
{
int N,i,j,M=0;
scanf("%d",&N);
for(i=0;i<N;i++) {
for(j=0;j<=i;j++) scanf("%d",&D[i][j]);
if(i) {
for(j=0;j<=i;j++) {
if(!j) D[i][j]+=D[i-1][j];
else if(j==i) D[i][j]+=D[i-1][j-1];
else D[i][j]+=D[i-1][j-1]>D[i-1][j]?D[i-1][j-1]:D[i-1][j];
}
}
}
for(j=0;j<N;j++)
if(M<D[i-1][j]) M=D[i-1][j];
printf("%d",M);
}
加算は交換法則を成立させる.だから降りるときはもっと作ることができますが、遡ることもできます.
また、最低価格の問題条件特性を利用して、0に初期化された部分(例えば、三角形の一番左より左側の部分)は無条件に除外される.コードをさらに減らすことができます.
#include <stdio.h>
#define MAX(a,b) (a>b ? a : b)
int main()
{
int i,j,n,A[501][501];
scanf("%d",&n);
for(i=1;i<=n;i++) for(j=1;j<=i;j++) scanf("%d",A[i]+j);
for(i=n-1;i;i--) for(j=1;j<=i;j++)
A[i][j]+=MAX(A[i+1][j],A[i+1][j+1]);
printf("%d",A[1][1]);
return 0;
}
f52985のソース-> https://www.acmicpc.net/source/358547
そしてC言語マクロで記述できることが分かった.これから必要なときも使ってみます
一行が平らである.
これは、以前に似たようなタイプが解かれていたため、問題です.
Reference
この問題について(1932 : The Triangle), 我々は、より多くの情報をここで見つけました https://velog.io/@qoo0302/1932-The-Triangleテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol