AOJ0534 Chain
AOJ0535 Crossing Black Ice
最近解いた問題
最近,AOJのVolume5を解いてる.解法をまとめないとすぐに忘れるのでメモ
Read on →Year End's Hack Day 2015参加記
明治大学NCC主催 Year End’s Hack Day 2015に参加しました
http://eventdots.jp/event/576488
Codeforces335-div2D Lazy Student
グラフの頂点数,辺の数, 最小全域木を構築する辺とそれ以外の辺が与えられる.そのようなグラフが存在すればその一例を,そうでない場合は-1を出力する.
考察
最小全域木を構築する辺をコストの小さい順に一本につなげる.Sample 1では次のようにする.
後は最小全域木を壊さないように辺を追加する.2つの辺を選び,その端を結ぶことを考えるとその選び方は2乗通りある.
しかし,最小全域木を壊さないということは,選んだ2つの辺のコストよりも大きい辺を追加すれば良いので,小さい順に見ていけばよい.一本の線にする時に小さい順にしているので,前から見ていくことで,追加する辺の個数回で済む.
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
|
選んだ辺のコストを超えないようにするということは,まず1つの辺を選んだ時に,それより小さい辺を見なければいけなかったが,大きい方の辺をずらしていくという意味の分からないことをしていてWAを連発した.
Codeforces334-div2C Alternative Thinking
長さの'0'と'1'で構成された文字列が与えられる.ある区間を1度だけ反転して'0'と'1'が交互となる列の長さを最大化する.
考察
まず,文字列の交互列の長さをとすると,一度の反転で最大2しか増えないことが分かる.例えば,
のように出来る.また,の時以外に,区間を反転して長さが増えないケースを考えると,そのようなケースは無いと分かる.反転する区間で01を内包している場合,反転後をその部分は10で交互列になるからである.
よって,を超えないように,+1,+2したらACが貰えた
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
|
ProjectEuler 349 Langton's Ant
https://projecteuler.net/problem=349
行動回数をとしてとりあえずシュミレーションしてみる.
結果だけ見ても良くわからないので,動きを見てみた.
もっと大きな数をやった
!!!!!!!
めっちゃびっくりした.直線になるらしい
周期的になるだろうと思い10000から100ずつぐらいずらして数えた差を取ってみた
どうやら10000から始めると26で一周期になっているようだ.実際に2600ずつずらしてみた.
後はpythonで計算した.
1 2 3 4 |
|
後は100ずつずらした時の20番目までを足した
submitしたら合ってた.良かった.
シュミレーションするコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
|
Codeforces332-div2C Day at the Beach
数列 h があり,hをソートした状態にしたい.区間に分けるとその区間ではソートすることが出来る.この分ける区間の数を最大化したい.
考察
数列hをソートし,ソート前とソート後で比較する.左から見て個数をカウントしていき,それが0に担った所を区切る.この区切り方は,数列hの区間をソートした数列が,ソートした数列hと一緒になる一番短い区間になる方法である.よってこれを繰り返すことで最大値が求まる.
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
|
本番中はよくわからないコードを書いていた.終了後にソートしたものと比較すれば良いことに気付いた...
Codefestival 2015 参加記
適当に箇条書き.日本語がだいぶ怪しい
予選突破練習会
予選A
予選突破練習会2
予選B
- 優先度を順番にしてずらしていけば部分点(35点)が取れることに気づく.3完+部分点を達成
- 131位で何とか通過出来た
- 通過出来たのは,予選突破練習会のおかげです!!!
1日目
- @teight_meightさんと待ち合わせして行こうと決める
- 出会えず
新宿西口駅の大江戸線と新宿駅の大江戸線を間違えた(想定誤解法)
— 104_t8m8 (@teight_meight) November 14, 2015
- 結構な時間迷って何とか会場にたどり着く
- 45分遅れてスタート
A
サイズを見る - AC
http://code-festival-2015-final.contest.atcoder.jp/submissions/561950
B
真ん中でしょ,とか思って出す - AC
http://code-festival-2015-final.contest.atcoder.jp/submissions/562371
C
01と10を数えれば大丈夫でしょ,とか思って出す - AC
http://code-festival-2015-final.contest.atcoder.jp/submissions/562682
D
3回RMQすれば良いと気づく. - 6WAを生やす
通らないケースが1つだけなので,特殊なケースで落ちてると思いきや適当なテストケースを作って合わないことがわかる.直す - AC
http://code-festival-2015-final.contest.atcoder.jp/submissions/564347
E
パーカーが見えてきた. , -, !, -!, !!, -!!の6パターンに場合分け出来そう.0と非0をシュミレーションして場合分けする - AC
http://code-festival-2015-final.contest.atcoder.jp/submissions/565281
- 157位でパーカー郵送組.ワイワイした
- トークライブ,体が1つでは足りないと感じた
- エキシビションマッチ,席の近くのモニター(yosupotさん)をずっと見ていた.雲の上の人のような,めちゃ強の人たちのコーディングが見れるのは非常に良いと思った
ホテル着
- さて君を飲みに誘う
- 7人ぐらいでぶっちぎり酒場へ
- 酔っぱらい太郎
- さて君の川柳を見ながらベッドで横になる
2日目
あさプロ.Easyに参加した.
A
以下をより小さいにしていて2WAを生やす
http://code-festival-2015-morning-easy.contest.atcoder.jp/submissions/569089
B
半分に分けて見る - AC
http://code-festival-2015-morning-easy.contest.atcoder.jp/submissions/569250
C
目標の点から引けば良いと考える. - WA
最初に0加えたり,色々直す - AC
http://code-festival-2015-morning-easy.contest.atcoder.jp/submissions/569518
D
半分に分けてlcsを取れば良いと気づく - AC
http://code-festival-2015-morning-easy.contest.atcoder.jp/submissions/570044
- 28位でスタンプ貰う.ワイワイした
- Mid Cを考えるけど解けず
リレー
- Cを担当するも円周率 3.14しか言えず
- 冷や汗ダラダラ思考停止
- チームの方に円周率を教えてもらい何とかAC
- グラフの数え上げをする.余り役に立たず
- 難しい問題を解いてるチームの方を応援する.全く役に立たず
- チームの方はいい人ばかりだった
まとめ
Codefestival2015最高でした
運営・参加者の方々お疲れ様でした,ありがとうございました.