Mais conteúdo relacionado April20132. Over View Sheet
● 入出力例から問題を察する
●
察せなくても...
– オンライン整数列辞典に投げると答えが降ってくる
●
1,11,12,1121,1321,122131,132231...
●
前の数字に1が何個,2が何個,3が何個...
– 0個なら書かない
● 適当に文字列処理すれば解ける?
3. Over View Sheet
● JudgeにはN = 10^ 9のケースがあります
– 計算量が間に合わない
● 実は13項目から全部12233241でループに入
る
● ループに入ったら抜け出せば良い
● 想定計算量:O(定数)
5. P!=NP
● 問題分がアホの子発言なので、頭のレベルを
下げて考える
● 「複雑な式変形」「画期的な等式を導く」
● P!=NP
● P! = NP
● (P-1)! = N
● これが言いたかった
6. P! = NP
● 入出力例を見るとPが与えられるので(P-1)!を求
めさせる問題と察せる
– さっきの式変形ができれば自明
● ただしPが10^ 9まである
– TLE必至
– ただし手元では数十秒で実行できる
● 埋め込めば良い
– 10^ 7の倍数の解を埋め込めば良いです
7. P != NP
● コンテスト中にアラートが出ましたね
●
参考の論文PDFへのリンクを貼りました
* *
* + うそです
n ∧_∧ n
+ (ヨ(* ´∀`)E)
Y Y *
9. Today is Aprilfool
● 今日はエイプリルフール
● 問題文はWikipediaの内容を適当に言い換えま
した
● わけがわからないので, OverViewSheetを読み
ましょう
12. Today is Aprilfoolの入力紹介
● #1 pya
● #2 123
● #3 hi m y nam e is catup
● #4 3.1415926535
● #5 Green Triangle Monster
● #6 no m ore output
15. Lying is fun 概要
● 「この中にa人{未満|以上}の正直者がいる」
● 「a番の人は{正直者|嘘つき}である」
● という発言をするN人が集まる
● 正直者の人数の最小値を求めよ
● ありえない場合は-1を出力せよ
16. Lying is fun考察
● 「この中にa人{未満|以上}の正直者がいる」
● このタイプの発言だけの場合はどう解くか
● 0 ≦ i ≦ Nに対して「正直者がi人の場合何人の
発言が真実となるか」 をしらべる
● 表に書くとわかりやすい
17. Lying is fun考察
● A「3未満」B「2以上」C「1以上」D「0以
上」
● それぞれが真実となる範囲に1を足す
● → os法(累積和)
im
A B C D 合 i 適性
0 1 1 1 3 3 OK
1 1 1 1 4 2 NG
1 0 1 1 3 1 NG
1 0 0 1 2 0 NG
18. Lying is fun考察
● 「a番の人は{正直者|嘘つき}である」
● これだけの場合は?
● グラフを書けば良い
– 一人から一つの辺を他人に伸ばす
– 閉路1つを根とする木(クトゥルフ)ができあが
る
– 厳密にはクトゥルフの森ができあがる
19. Lying is fun考察
● 各連結成分はある頂点を正直者か嘘つきか決
めると残りも決まる
– 2通りの結果がある
– 他の連結成分には影響しないので小さい方を取れ
ば良い
● クトゥルフ検出は頂点を色つけしたり、強連
結成分分解するなどすればよい
20. Lying is fun考察
● 両方の発言がある場合は?
● 一部のクトゥルフの頂点が閉路じゃなくて
「この中にa人{未満|以上}の正直者がいる」
のタイプの頂点になる → 木になります!
● そういう木についてはim os法で足す値が1じゃ
なくなるだけで, 同様に解くことができる
● 問題は普通のクトゥルフの方
21. Lying is fun考察
● 貪欲に正直者が少ない方を取れば良いのか?
– 入出力例6がコーナーケースです
● クトゥルフだけで作ることができる正直者の
人数を列挙する必要がある
– DPでフラグを立てるなどして その人数が可能か
O(1)で調べることができるようにする
● やればできる
22. Lying is fun想定解
● 連結成分を分解 O(N)
● 木の連結成分をim os処理 O(N)
● クトゥルフの連結成分をDP O(N^ 2)
● 各0 ≦ i ≦ Nについて可能か調べるO(N)
● 想定計算量O(N^ 2)
● N = 10,000ですが定数が軽いので通ります
23. Lying is fun
● 「エイプリルフールコンテストなのにガチ
問」という嘘でしたー
● AC:5人
● AC以外の人は手を付けてない感じ
– 普通のコンテストで出せばよかったかもしれない
– 反省