SlideShare a Scribd company logo
1 of 32
Download to read offline
ABC 028
解説: 森田 晃平(@yosupot)
A問題: テスト評価
プログラムの流れ
• 入力
• それがBad, Good, Great, Perfectのどれかを判別する
• 出力
練習ページ: (http://practice.contest.atcoder.jp/tasks/practice_1 )を参考に
入力, 出力
判別部分
C, C++ ならばif文というものを使います。
example : if (60 <= point && point <= 89) とか
#include <cstdio>
int main() {
int N;
scanf("%d", &N);
if (0 <= N && N <= 59) {
printf("Badn");
} else if (60 <= N && N <= 89) {
printf("Goodn");
} else if (90 <= N && N <= 99) {
printf("Greatn");
} else if (N == 100) {
printf("Perfectn");
}
return 0;
}
コード例(C++)
B問題: 文字数カウント
プログラムの流れ
• 入力
• 文字の種類ごとに出る回数を数え上げる
• 出力
練習ページ: (http://practice.contest.atcoder.jp/tasks/practice_1 )を参考に
入力, 出力
数え上げ部分
だいたいの言語には文字列中の文字をカウントする関数があります。
たとえばC++ならばcount(s.begin(), s.end(), A )で A の個数を数
え上げられます
プログラムの流れ
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string s;
cin >> s;
string AF = "ABCDEF";
int c[6];
for (int i = 0; i < 6; i++) {
c[i] = count(s.begin(), s.end(), AF[i]);
}
// c[i] には i 文字目の個数が入っている
string result = to_string(c[0]);
for (int i = 1; i < 6; i++) {
result += " " + to_string(c[i]);
}
cout << result << endl;
return 0;
}
コード例(C++)
C問題: 数を3つ選ぶマン
問題
• 異なる数が5個与えられる
• 3個足す
• できる数のなかで3番目に大きいものは?
問題
A B C D E
問題
A B C D E
できる数のなかで1番大きいものは?
問題
A B C D E
できる数のなかで1番大きいものは?
当然 C + D + E
問題
A B C D E
できる数のなかで2番目に大きいものは?
問題
A B C D E
できる数のなかで2番目に大きいものは?
問題
A B C D E
できる数のなかで2番目に大きいものは?
問題
A B C D E
できる数のなかで2番目に大きいものは?
問題
A B C D E
できる数のなかで2番目に大きいものは?
これは B + D + E になる
問題
A B C D E
できる数のなかで3番目に大きいものは?
問題
A B C D E
できる数のなかで3番目に大きいものは?
A B C D E
問題
A B C D E
できる数のなかで3番目に大きいものは?
A B C D E
問題
A B C D E
できる数のなかで3番目に大きいものは?
A B C D E
問題
A B C D E
できる数のなかで3番目に大きいものは?
これは A + D + E か B + C + E のどちらかになる
A B C D E
→ max(A+D+E, B+C+E) を出力すればOK!
D問題: 乱数生成
問題
• 1, 2, 3, .., N から 1 個選ぶ機械がある
• この機械を3回動かして中央値がKになる確率は?
問題
• 中央値がKになるような機械の出力の通り数を求め
てN^3で割れば良い
• たとえばN=3, K=1ならば
• (1, 1, 2) (1, 1, 3) (1, 2, 1) (1, 3, 1) (2, 1, 1) (3, 1, 1) (1, 1, 1)
• と、中央値が1となる出方が7通りある
• よって答えは 7 / 27 = 0.259259259…
問題
• 中央値がKになるような機械の出力は何通りか?
• 何回Kが出力されたかで場合分けして数え上げる
問題
• 当然中央値がKとなることはありえない。よって0
通り。
Kが0回出力された場合
問題
• 残りの2回のうち、片方がKより大きくてもう片方がKより小さければ良い
• Kより大きいもの(Bとする)はN-K個
• Kより小さいもの(Sとする)はK-1個
• 3回の出力の出る順番として(K, B, S) (K, S, B) (B, K, S) (B, S, K) (S, K,
B) (S, B, K) の6通りが考えられる
• 以上まとめて (N-K) * (K-1) * 6 通り
Kが1回出力された場合
問題
• 残りの1回の出力がなんであろうと中央値はKとなる
• Kではないもの(Lとする)はN-1個
• 3回の出力の出る順番として(K, K, L) (K, L, K) (L, K, K)
の3通りが考えられる
• 以上まとめて (N-1) * 3 通り
Kが2回出力された場合
問題
• 当然中央値はKとなる
• 当然出方は1通り
Kが3回出力された場合
問題
• よって全部まとめると
• (N-K) * (K-1) * 6 + (N-1) * 3 + 1 通り
• これを N^3 で割ったものが答え

More Related Content

What's hot

What's hot (20)

AtCoder Beginner Contest 021 解説
AtCoder Beginner Contest 021 解説AtCoder Beginner Contest 021 解説
AtCoder Beginner Contest 021 解説
 
AtCoder Regular Contest 042 解説
AtCoder Regular Contest 042 解説AtCoder Regular Contest 042 解説
AtCoder Regular Contest 042 解説
 
AtCoder Beginner Contest 010 解説
AtCoder Beginner Contest 010 解説AtCoder Beginner Contest 010 解説
AtCoder Beginner Contest 010 解説
 
AtCoder Beginner Contest 030 解説
AtCoder Beginner Contest 030 解説AtCoder Beginner Contest 030 解説
AtCoder Beginner Contest 030 解説
 
AtCoder Beginner Contest 024 解説
AtCoder Beginner Contest 024 解説AtCoder Beginner Contest 024 解説
AtCoder Beginner Contest 024 解説
 
abc027
abc027abc027
abc027
 
AtCoder Regular Contest 039 解説
AtCoder Regular Contest 039 解説AtCoder Regular Contest 039 解説
AtCoder Regular Contest 039 解説
 
AtCoder Beginner Contest 011 解説
AtCoder Beginner Contest 011 解説AtCoder Beginner Contest 011 解説
AtCoder Beginner Contest 011 解説
 
AtCoder Beginner Contest 016 解説
AtCoder Beginner Contest 016 解説AtCoder Beginner Contest 016 解説
AtCoder Beginner Contest 016 解説
 
AtCoder Beginner Contest 029 解説
AtCoder Beginner Contest 029 解説AtCoder Beginner Contest 029 解説
AtCoder Beginner Contest 029 解説
 
ABC001 解説
ABC001 解説ABC001 解説
ABC001 解説
 
AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 017 解説AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 017 解説
 
AtCoder Beginner Contest 033 解説
AtCoder Beginner Contest 033 解説AtCoder Beginner Contest 033 解説
AtCoder Beginner Contest 033 解説
 
AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説
 
AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 015 解説AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 015 解説
 
Abc009
Abc009Abc009
Abc009
 
AtCoder Regular Contest 018 解説
AtCoder Regular Contest 018 解説AtCoder Regular Contest 018 解説
AtCoder Regular Contest 018 解説
 
AtCoder Regular Contest 037 解説
AtCoder Regular Contest 037 解説AtCoder Regular Contest 037 解説
AtCoder Regular Contest 037 解説
 
AtCoder Regular Contest 021 解説
AtCoder Regular Contest 021 解説AtCoder Regular Contest 021 解説
AtCoder Regular Contest 021 解説
 
AtCoder Beginner Contest 019 解説
AtCoder Beginner Contest 019 解説AtCoder Beginner Contest 019 解説
AtCoder Beginner Contest 019 解説
 

Viewers also liked

Homoeopathic Home Prescribing Class 18th October 2014
Homoeopathic Home Prescribing Class 18th October 2014Homoeopathic Home Prescribing Class 18th October 2014
Homoeopathic Home Prescribing Class 18th October 2014
Owen Homoeopathics
 

Viewers also liked (16)

abc031
abc031abc031
abc031
 
AtCoder Regular Contest 046
AtCoder Regular Contest 046AtCoder Regular Contest 046
AtCoder Regular Contest 046
 
AtCoder Beginner Contest 020 解説
AtCoder Beginner Contest 020 解説AtCoder Beginner Contest 020 解説
AtCoder Beginner Contest 020 解説
 
DDPC 2016 予選 解説
DDPC 2016 予選 解説DDPC 2016 予選 解説
DDPC 2016 予選 解説
 
abc032
abc032abc032
abc032
 
AtCoder Regular Contest 045 解説
AtCoder Regular Contest 045 解説AtCoder Regular Contest 045 解説
AtCoder Regular Contest 045 解説
 
天下一プログラマーコンテスト2015 予選B 解説
天下一プログラマーコンテスト2015 予選B 解説天下一プログラマーコンテスト2015 予選B 解説
天下一プログラマーコンテスト2015 予選B 解説
 
AtCoder Beginner Contest 002 解説
AtCoder Beginner Contest 002 解説AtCoder Beginner Contest 002 解説
AtCoder Beginner Contest 002 解説
 
AtCoder Regular Contest 049 解説
AtCoder Regular Contest 049 解説AtCoder Regular Contest 049 解説
AtCoder Regular Contest 049 解説
 
深さ優先探索による塗りつぶし
深さ優先探索による塗りつぶし深さ優先探索による塗りつぶし
深さ優先探索による塗りつぶし
 
高速フーリエ変換
高速フーリエ変換高速フーリエ変換
高速フーリエ変換
 
Plan de clase
Plan de clasePlan de clase
Plan de clase
 
DALLA DELUSIONE ALLA SPERANZA
DALLA DELUSIONE ALLA SPERANZADALLA DELUSIONE ALLA SPERANZA
DALLA DELUSIONE ALLA SPERANZA
 
Barometro kayak-2013
Barometro kayak-2013Barometro kayak-2013
Barometro kayak-2013
 
Homoeopathic Home Prescribing Class 18th October 2014
Homoeopathic Home Prescribing Class 18th October 2014Homoeopathic Home Prescribing Class 18th October 2014
Homoeopathic Home Prescribing Class 18th October 2014
 
新浪微博的BigPipe后端实现技术分享——11月26日淘宝aDev技术沙龙
新浪微博的BigPipe后端实现技术分享——11月26日淘宝aDev技术沙龙新浪微博的BigPipe后端实现技术分享——11月26日淘宝aDev技术沙龙
新浪微博的BigPipe后端实现技术分享——11月26日淘宝aDev技术沙龙
 

Similar to AtCoder Beginner Contest 028 解説

JOI予選はランチの後で
JOI予選はランチの後でJOI予選はランチの後で
JOI予選はランチの後で
Ken Ogura
 
TokyoR24 - PerformanceRvsC#
TokyoR24 - PerformanceRvsC#TokyoR24 - PerformanceRvsC#
TokyoR24 - PerformanceRvsC#
ta2c
 

Similar to AtCoder Beginner Contest 028 解説 (20)

8_C言語入門 - 条件分岐について(if-else if-else)
8_C言語入門 - 条件分岐について(if-else if-else)8_C言語入門 - 条件分岐について(if-else if-else)
8_C言語入門 - 条件分岐について(if-else if-else)
 
JOI予選はランチの後で
JOI予選はランチの後でJOI予選はランチの後で
JOI予選はランチの後で
 
人工無脳バトル 1st STEP 回答と解説
人工無脳バトル 1st STEP 回答と解説人工無脳バトル 1st STEP 回答と解説
人工無脳バトル 1st STEP 回答と解説
 
Pythonではじめる競技プログラミング
Pythonではじめる競技プログラミングPythonではじめる競技プログラミング
Pythonではじめる競技プログラミング
 
Lecture2
Lecture2Lecture2
Lecture2
 
Lt会01_uetch
Lt会01_uetchLt会01_uetch
Lt会01_uetch
 
AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説
 
[Basic] 提示資料
[Basic] 提示資料[Basic] 提示資料
[Basic] 提示資料
 
Sec15 dynamic programming
Sec15 dynamic programmingSec15 dynamic programming
Sec15 dynamic programming
 
Introduction to programming
Introduction to programmingIntroduction to programming
Introduction to programming
 
動的計画法の並列化
動的計画法の並列化動的計画法の並列化
動的計画法の並列化
 
Gurobi python
Gurobi pythonGurobi python
Gurobi python
 
Hupc 1
Hupc 1Hupc 1
Hupc 1
 
Donutsプロコンチャレンジ 2015 解説
Donutsプロコンチャレンジ 2015 解説Donutsプロコンチャレンジ 2015 解説
Donutsプロコンチャレンジ 2015 解説
 
ji-3. 条件分岐と場合分け
ji-3. 条件分岐と場合分けji-3. 条件分岐と場合分け
ji-3. 条件分岐と場合分け
 
AtCoder Regular Contest 032 解説
AtCoder Regular Contest 032 解説AtCoder Regular Contest 032 解説
AtCoder Regular Contest 032 解説
 
TokyoR24 - PerformanceRvsC#
TokyoR24 - PerformanceRvsC#TokyoR24 - PerformanceRvsC#
TokyoR24 - PerformanceRvsC#
 
Tokyo r27
Tokyo r27Tokyo r27
Tokyo r27
 
Meeting9
Meeting9Meeting9
Meeting9
 
金大アルゴリズム勉強会#002資料
金大アルゴリズム勉強会#002資料金大アルゴリズム勉強会#002資料
金大アルゴリズム勉強会#002資料
 

More from AtCoder Inc.

More from AtCoder Inc. (16)

TCO2017R1
TCO2017R1TCO2017R1
TCO2017R1
 
AtCoderに毎回参加したくなる仕組み
AtCoderに毎回参加したくなる仕組みAtCoderに毎回参加したくなる仕組み
AtCoderに毎回参加したくなる仕組み
 
Square869120 contest #2
Square869120 contest #2Square869120 contest #2
Square869120 contest #2
 
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
 
Chokudai Contest 001
Chokudai Contest 001Chokudai Contest 001
Chokudai Contest 001
 
AtCoder Beginner Contest 034 解説
AtCoder Beginner Contest 034 解説AtCoder Beginner Contest 034 解説
AtCoder Beginner Contest 034 解説
 
AtCoder Regular Contest 048
AtCoder Regular Contest 048AtCoder Regular Contest 048
AtCoder Regular Contest 048
 
MUJINプログラミングチャレンジ2016 解説
MUJINプログラミングチャレンジ2016 解説MUJINプログラミングチャレンジ2016 解説
MUJINプログラミングチャレンジ2016 解説
 
arc047
arc047arc047
arc047
 
CODE FESTIVAL 2015 沖縄ツアー 解説
CODE FESTIVAL 2015 沖縄ツアー 解説CODE FESTIVAL 2015 沖縄ツアー 解説
CODE FESTIVAL 2015 沖縄ツアー 解説
 
CODE FESTIVAL 2015 解説
CODE FESTIVAL 2015 解説CODE FESTIVAL 2015 解説
CODE FESTIVAL 2015 解説
 
CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説
 
CODE FESTIVAL 2015 予選A 解説
CODE FESTIVAL 2015 予選A 解説CODE FESTIVAL 2015 予選A 解説
CODE FESTIVAL 2015 予選A 解説
 
AtCoder Regular Contest 044 解説
AtCoder Regular Contest 044 解説AtCoder Regular Contest 044 解説
AtCoder Regular Contest 044 解説
 
AtCoder Regular Contest 043 解説
AtCoder Regular Contest 043 解説AtCoder Regular Contest 043 解説
AtCoder Regular Contest 043 解説
 
天下一プログラマーコンテスト2015 予選A E問題 解説
天下一プログラマーコンテスト2015 予選A E問題 解説天下一プログラマーコンテスト2015 予選A E問題 解説
天下一プログラマーコンテスト2015 予選A E問題 解説
 

Recently uploaded

The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
 

Recently uploaded (7)

東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 

AtCoder Beginner Contest 028 解説