質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

1回答

1254閲覧

JOI2009 情報オリンピック 5問目

cyter1915

総合スコア10

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

1クリップ

投稿2015/11/18 08:23

情報オリンピック2009年の5問目。
以下のソースの意味を教えてください。

http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0547

問題文はこちらです。

#include<bits/stdc++.h>
using namespace std;
int main(){
int w,h;
int a[111][111],b[111][111],c[111][111],d[111][111];
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
memset(d,0,sizeof(d));
a[1][0]=1;
b[0][1]=1;
for(int i=1;i<=100;i++){
for(int j=1;j<=100;j++){
a[i][j]=(a[i-1][j]+d[i-1][j])%100000;
b[i][j]=(b[i][j-1]+c[i][j-1])%100000;
c[i][j]=a[i][j-1]%100000;
d[i][j]=b[i-1][j]%100000;
}
}
cin >> w >> h;
printf("%d\n",(a[w][h]+b[w][h]+c[w][h]+d[w][h])%100000);
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

こんにちは。

a[i][j]=(a[i-1][j]+d[i-1][j])%100000;

の式を見て、なんとなくa[i][j]は東へ移動して(i, j)点へ到達した時の組み合わせの数っぽい感じがします。

printf("%d\n",(a[w][h]+b[w][h]+c[w][h]+d[w][h])%100000);

を見ると、a[w][h]~d[w][h]は、それぞれなんらかのルートを通って(w, h)点へ到達した時の組み合わせの数のように思えます。
また、JOIさんが会社の敷地内にある社員寮に住んでいて自宅=会社の場合、通勤経路の組み合わせは1つしかない筈です。なので、(w, h)=(1, 1)の場合、答えは1のはずですよね?

この考え方をベースに、a[i][j]~d[i][j]を、0~5くらいまで出力してみて、それぞれの意味を考えてみたら、理解できるかも知れません。

もし、それで理解できくても、色々検討しているのでもう少し具体的な質問が出せると思います。
そのような質問であれば食いついて来る人がたくさんいると思いますよ。

頑張ってください。

投稿2015/11/18 10:39

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問