Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AOJ 0186 Aizu Chicken 解説
Search
kagamiz
March 29, 2013
Programming
330
0
Share
AOJ 0186 Aizu Chicken 解説
OkNCT-ICT 2013 春合宿 Day5(らしい) に解説したもの.
kagamiz
March 29, 2013
More Decks by kagamiz
See All by kagamiz
KCS v2. の開発
kagamiz
0
280
internship final presentation
kagamiz
0
1.3k
internship-middle term presentation
kagamiz
0
1.2k
すうがくのまほう
kagamiz
0
370
ご当地料理の紹介
kagamiz
0
490
オンラインジャッジシステムの実装
kagamiz
0
1.2k
AOJ 0022 Maximum Sum Sequence 解説
kagamiz
1
1.6k
AOJ 0557 A First Grader 解説
kagamiz
0
1k
JOI2013 本選1 Illumination 解説
kagamiz
0
390
Other Decks in Programming
See All in Programming
How Swift's Type System Guides AI Agents
koher
0
300
The Less-Told Story of Socket Timeouts
coe401_
3
590
AI時代のエンジニアリングの原則 / Engineering Principles in the AI Era
haru860
0
590
Claude Codeをカスタムして自分だけのClaude Codeを作ろう
terisuke
0
140
forteeの改修から振り返るPHPerKaigi 2026
muno92
PRO
3
290
AIベース静的検査器の偽陽性率を抑える工夫3選
orgachem
PRO
3
350
Going Multiplatform with Your Android App (Android Makers 2026)
zsmb
2
450
YJITとZJITにはイカなる違いがあるのか?
nakiym
0
240
🦞OpenClaw works with AWS
licux
1
220
〜バイブコーディングを超えて〜 チームで実験し続けたAI駆動開発
tigertora7571
0
160
Road to RubyKaigi: Play Hard(ware)
makicamel
1
430
年間50登壇、単著出版、雑誌寄稿、Podcast出演、YouTube、CM、カンファレンス主催……全部やってみたので面白さ等を比較してみよう / I’ve tried them all, so let’s compare how interesting they are.
nrslib
4
800
Featured
See All Featured
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
69
39k
Statistics for Hackers
jakevdp
799
230k
Building AI with AI
inesmontani
PRO
1
910
AI: The stuff that nobody shows you
jnunemaker
PRO
6
590
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Making Projects Easy
brettharned
120
6.6k
Designing Powerful Visuals for Engaging Learning
tmiket
1
350
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
10k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
64
54k
The World Runs on Bad Software
bkeepers
PRO
72
12k
WENDY [Excerpt]
tessaabrams
10
37k
Testing 201, or: Great Expectations
jmmastey
46
8.1k
Transcript
AOJ 0186 Aizu Chicken 解説 @kagamiz
問題概要 • ?????? • 問題文クソ難しいんだよね ... • 頑張って読む
問題概要 • あなたには予算が b 円あります . • 会津地鶏が 1 個
c1 円 , ふつうの鶏肉が 1 個 c2 円で 買える . • ただし , 会津地鶏は q2 個までしか買えない .
問題概要 • 鶏肉が足りなくなると困るので、 q1 個以上の鶏肉を買 う . • 予算の許す範囲で会津地鶏をできるだけ多く買う (
会津 地鶏は 1 個以上買わなければならない ). • 会津地鶏を買った残りでふつうの鶏肉をできるだけ多く 買う ( 予算が足りなければ買わない ).
アルゴリズムの考察 • 1. まず , できるだけ会津地鶏を買う . • 2. 残ったお金で普通の鶏肉を買う
. • 3. q1 個より多くなるまで , 会津地鶏を 1 個ずつ売りな がら普通の鶏肉を買う . • 4. 会津地鶏が 0 個になったら , お母さんの言う通りに 買えないので NA を出力する . そうじゃなければ個 数を出力 .
アルゴリズムの計算量 • “3. q1 個より多くなるまで , 会津地鶏を 1 個ずつ売り ながら普通の鶏肉を買う
." • これやばそう? • 実はそうでもない ( 各変数 ≦ 10^6 なので , ループは 最悪でも 10^6 しか繰り返されない .)
実☆装 • できるだけ " アルゴリズムの考察 " の項に素直に . – 複雑な事をするとバグります
実☆装 • 1. まず , できるだけ会津地鶏を買う . • 2. 残ったお金で普通の鶏肉を買う
. – aChick... 会津地鶏 bchick... 普通の鶏肉 aChick = min(b / c1, q2); b -= aChick * c1; bChick = max(0, b / c2); b -= bChick * c2;
実☆装 • 3. q1 個より多くなるまで , 会津地鶏を 1 個ずつ売りな がら普通の鶏肉を買う
. while (aChick + bChick < q1 && aChick){ b += c1; b += bChick * c2; bChick = b / c2; b -= bChick * c2; aChick--; }
実☆装 • 4. 会津地鶏が 0 個になったら , お母さんの言う通りに 買えないので NA
を出力する . そうじゃなければ個 数を出力 . if (aChick){ printf("%d %d\n", aChick, bChick); } else { printf("NA\n"); }