わくのメモ

日頃ふと思い付いたことを書きます。

今日やったこと

ICPCのチーム決めをした。

 

その後に、AOJ Virtual Arenaを使った練習会でした。

https://onlinejudge.u-aizu.ac.jp/beta/room.html#HCPC_2018_22_T

 

問題を読んで、Cが苦手と声があったので自分がCを実装。

やるべきことは、剰余の定理を使って因数分解するだけ。制約が簡単に解けるように作られてるので、制約の範囲で余りが0になるかどうか全部試せば良い。大変だったのは入力を受け取る部分でした。stringで一度受け取ってからそれをちまちま切り取るしか方法がない。自分は、2次以上の項と1次の項と定数項の部分でそれぞれ違う処理をしたんですが、効率よくやる方法はあったのでしょうか…C++のstringにはsplitが実装されていないので、自分で書くしかないです。ライブラリにして持っておいても悪くないかもしれないですが、STLにsplitがある言語を使う方が多分スマートに書けて良さそう。

結論からいうと、これはPythonでやるべきでした。チーム戦ということで、C++で書いてみたのですがこれは多分失敗。ICPCでは去年からPythonが使えるそうなので使えるときは使っていきたい。

AやBに時間が掛かっていたのですが、役割分担によってはもう少し効率よく解けたのでは?、とのアドバイスがあったので本番までに得意分野と苦手分野をはっきりさせておきたいところでした。

今日やったこと

 今日もHCPCの活動に参加しました。AOJ Virtual Arenaを利用した練習会でした。

https://onlinejudge.u-aizu.ac.jp/beta/room.html#HCPC2018_021_2

JOI予選の過去問ということで、見覚えのある懐かしい問題が並んでいました。

 

A

簡単です。4つと2つに分かれてますが、大したことはないです。全部足してからそれぞれの一番点数が低いのを引くのが良いかもしれません。

 

B

愚直にシミュレーションしてもO(NM)で済むのでそれでいけます。

 

C

白で塗る行数と、青で塗る行数を全探索しても十分間に合うので全探索をします。

 

D

時間がある程度経過したときに、住民の動きとしては「おしゃべりをしている」「右に歩いている」「左に歩いている」のいずれかです。方針は、時間が十分に経過したときに住民がおしゃべりをするポイントを予め確認しておいて、あとは重要人物が与えられた時間内におしゃべりポイントにたどり着くかを調べます。

実装が色々混乱して大変でした。慣れも必要だしミスを初めからしないようにするのが良いです。頑張ろう。

 

思い出として、最初にこれを見たときはシミュレーションをしたのを思い出しました。あの時は計算量を数えるという概念を持っていませんでした。

 

E

難しくてわからなかったです。危険な街を調べるのはBFS的なものだろうとは気付いたのですが、グラフを与えられたときのBFSがわかりませんでした。連結リストが必要と聞いたので、簡単な問題で慣れたらリベンジです。

この手の、重みの付いたグラフの最短コストで目的地に着くのは典型問題らしく、これも解いておかないと類題が出てもわからないので練習が必要です。

 

 

ICPCが近くなってきたので、頑張っていきたいです。

世界が滅ぶとしたらどのように滅びるか?

内容はタイトルままです。実際にこんなことが起こるかはわかりません。

これは全部フィクションです

 

もしも世界が滅ぶとしたら

 世界は滅んでしまった。人類はまだそれなりの数生き残っているが、もはや以前のような繁栄をすることはないだろう。私が80歳になるまで生きることはきっとできる。でも私の孫が80歳まで生きられるかはわからない。人類はもうそれくらいまで追い詰められてしまった。いや、これも自業自得なのかもしれない。

 私はあの日のことをよく覚えている。全てはあの日から始まって、あの日に全てが終わったといえるだろう。未知の微生物が世界中で発生した。それは石油・石油製品を食べる性質を持っていたらしい。火力発電所は停止して電力不足になった。石油製品もすぐに不足するようになった。現代の生活はもはや石油無しでは成り立たなくなっていたのだろう。

 人々がこれまでと同じ生活を送ることは二度とないと気付いたのは事件発生から1か月もかからなかった。その後はパニックになった群衆が国会議事堂前に押し寄せたり、海外に逃げようとする人が増えたり、はたまた怪しい宗教が流行ったりした。私は、もともと田舎の方に住んでいたから混乱には巻き込まれなかったものの、事態の深刻さに気付いた時には取れる行動はほとんど残されていなかった。田舎の山奥に籠もって農業を続けていればしばらく生き延びることはできるし、首都の方に出ていけば何か変えられたかもしれない。私は結局のところ山奥でひっそりと暮らしている。村の中の若い人はほとんど首都に出ていったきり音沙汰がない。

 たまたま村に立ち寄った旅人の話によれば、首都では強盗や放火などが日常的に行われているらしい。そこに秩序はもはや存在していないとのことだ。彼らには彼らなりのコミュニティがあるらしく、私も彼らから時々情報をもらっている。日本に限って言えば人口は1000万人を切ったかもしれない。農業ができない地域では食料が足りずに餓死する人がとても多いそうだ。海外の話はあまり聞かないけど、海外に行った人から連絡がないということから推して知るべしか。

 これから生まれる子供は、この村から出ずに一生を過ごすのだろうか?彼らには未来がないのだろうか?この世界はもう…

日記みたいなもの

コミケの当落で賑わっている。自分もコミケ出したいなぁ。

 

なんか、早めに寝ても変な時間に目が覚めました。

やらなきゃいけない課題もあるし、勉強もたくさんやるしで、とても忙しい。例えばプログラミングしたり絵を描いたりする時間がない。

ないんだけど、どうしてもやりたいけど、課題をなぜか先に終わらせないっていうやつになってて辛い

課題が普通に難しいというのも大きい

 

これ書いてて忘れてた課題を一つ思い出したかも…

 

 

日記兼お願い

こんばんは

久しぶりですね

まずは、ちょっとしたお知らせとかお願いから

 

こちらは私のGitHubのとあるレポジトリです。

GitHub - wakuwinmail/URARA_ikusei_game

こちらは、私の好きなマンガ作品の「うらら迷路帖」という作品の世界観をモチーフにしたゲームの作成をしていく場所としていきたいと考えています。

このブログを読んでいる人の中には、ゲームを作ったことがない人も多くいると思います。ゲームを作るということは、時間と手間がとても掛かります。そのため、通常はチームを組んで作業を進めていきます。

さて、ところでこのゲームはまだ作成中でデザインも決まっていない状態ではありますが、制作に協力してくれる人を募集しています。問い合わせは、Twitterの@wakuwinmailかメールwakuwinmail@yahoo.co.jpまでお願いします。一緒にゲームを作っていきましょう。

参考

 

うらら迷路帖 (1) (まんがタイムKRコミックス)

うらら迷路帖 (1) (まんがタイムKRコミックス)

 

 

 

 

今日の日記も書きます

 

ご飯を変な時間に食べた

朝ごはんが遅くて、昼も遅くて、でも夜はそんな遅くない。お腹減ったりイライラしてるからといって夜中にアイスを食べるのは控えましょう。

 

日記

ペンタブが届いた

化学の小テストが難しかったので勉強不足を感じた

学園祭が近いけど何もしてない

レポートとか課題がたくさんあることを考えると不安で倒れそう

先に全部終わらせるということもあるけど、正直なところ終わりはないので、やりたいことをやるなら適当にバランスを取らないといけない

 

総括

人生は難しい

今日やったこと

今日も今日とてAOJ Virtual Arenaでの練習会に参加しました。

https://onlinejudge.u-aizu.ac.jp/beta/room.html#HCPC_019_2

 

感想

A

データセットの個数を教えてください。

やり方を知らなかったので調べた。そしたら、cinの読み込み失敗したかどうかを調べることができたのでそれを使った。

 

B

いつまでもコンパイルエラー出るなと思ったら、sort関数に変なもの渡してた。pairに入れる順番を入力と逆にしたらソートが楽になった。

 

C

ぱっと見stack使いそうだったので適当に書いたらREした。原因は多分空文字列を上手く扱えてないからだったと思う。よくわからなかったけど、cinでは空の入力が取れないらしいのでgetlineを使ってみた。すると動いたので終わり。

実は細かい条件分岐を色々とミスっていたけれど、空文字列のを弄ってる途中で全部直した。

 

D

 大きさが小さいので地図を作ってシミュレートするだけっぽいのでやった。

5*5の頂点の地図を作って、各頂点から4方向に行けるか行けないかを記録した。頂点の間に壁があれば行けるという感じにした。

動かす手順は

1

今向いてる方向から左を向く

2

向いてる方向に進めたら進む

3

進めなかったら今向いてる方向から右を向く

 

2と3を繰り返したら、どこかしら進めるので現在地を更新してまた1からスタート。

最初は必ず右に進むのが分かってるので右に進んだところからスタートにすると終了の判定がちょっと楽かも?

細かい数字のミスとかを直してたら時間切れになったけど、サンプルが通ったので提出した。

1:39遅かった。AとCの変なところで詰まった時間があれば間に合っていたのでは?

 

E

問題見たけど理解できなかった。疲れて集中してなかったのもあるけど、複雑な設定で困るのは間違いないはず?

 

感想

段々と、知らないこととかできないことが減ってきてる気がする