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

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

新規登録して質問してみよう
ただいま回答率
85.35%
アルゴリズム

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

C++

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

Q&A

解決済

2回答

731閲覧

累積和の問題について。(AtCoder ABC-C)

cunwe

総合スコア65

アルゴリズム

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

C++

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

0グッド

0クリップ

投稿2020/05/30 07:41

こちらの問題が累積和の基本問題らしいので取り組んでみまして、以下が解答コードです。

#include <bits/stdc++.h> using namespace std; int memo[1000001] = {0}; int n, ans = 0; int main() { int a, b; cin >> n; for(int i = 0; i < n; ++i){ cin >> a >> b; ++memo[a]; --memo[b + 1]; } ans=memo[0]; for(int i = 1; i <= 1000000; ++i){ memo[i] += memo[i - 1]; ans = max(ans, memo[i]); } cout << ans << endl; return 0; }

######質問内容
最初のfor文でai,bi(1 ≦ i ≦ n)を受け取ったときに、memo[ai]に+1、memo[bi+1]に-1をするのだと思いますが、そうだと仮定して入力例1でやると

0,0,0,0,0,0,0,0,... //ここまでで10^6+1個の0初期化した配列を用意 +1,0,0,-1,0,0,0,0,... +1,0,+1,-1,-1,0,0,0,... +1,0,+1,-1,-1,-1,0,0,... +1,0,+2,-1,-1,0,0,-1,...

となっていると思うのですがこの後何をしてるのかわからないので教えていただけますと幸いです。また僕のこの途中までの考察で間違いがありましたらそれも合わせて教えてください。よろしくお願い致します。

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

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

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

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

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

guest

回答2

0

この後何をしてるのかわからないので教えていただけますと幸いです。

ヒストグラム(度数分布表)を作り、最頻値をansにしてます。

また僕のこの途中までの考察で間違いがありましたらそれも合わせて教えてください。

あなたの考察ってどこにあります?

投稿2020/05/30 08:21

episteme

総合スコア16612

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

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

0

ベストアンサー

ちょっと文章で説明するのは難しいので

累積和

こういうイメージです

投稿2020/05/30 08:10

rururu3

総合スコア5545

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

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

cunwe

2020/05/30 11:50

すごくわかりやすい表を作ってくださりありがとうございました!しっかり理解できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問