Python

【ハッカソン】HackFuture 参加紀

ハッカソンの素敵なお誘いを頂いたため、参加してきました。 楽しかった! もくじ HackFutureとは 結果 作ったもの 構成 役割 心残り エモ話 得た知識 締め HackFutureとは Hack Future〜ミライをツクル 理系大学生・大学院生対抗ハッカソン〜 これです。 結果 優勝しました! やった!!! 作ったもの protopedia.netに上がってたのでそちらを。 みんなで作ろう!香川マップ | ProtoPedia 構成 余談ですが、他のチームの構成見るのめちゃくちゃ楽しいです。AWSのアイコンとか出てくるとうおおおおってなります。Dockerとかも良いですね。 役割 僕の役割は ひたすらLINE BOTをHeroku+Python3.

heapqとABC141D – Powerful Discount Ticketsと私

ポエム兼備忘録です。 悔しいので一気に書ききります。 これは問題 多分解くのは二段階 問題の読み替え(一番値段の高いものを取得してそれを半額って流れだと読む) 実装(私はここでおしまいになりました) 1は多分そんなに難しくない。問題は2 愚直実装(M,Nの二重forループとか?)だとO(MN)で間に合わない。ここはわかる。 じゃあいったんソートして、一番後ろの要素(一番値が大きい)をpop (O(1))してその要素を半分にしてbisectでぶち込めばO(MlogN)じゃん!!! お手上げ 私は涙を流し、残り五分という短い時間を使いrocket leagueをするのだった・・・・ もくじ ABC終了後 変わりました ちゃんと書きました poem ABC終了後 それはそうとして解説を読んだらheapqらしい。どうやろ値の追加削除がO(logN)で最小値の取得がO(1)だとか (えっでもそれ俺の実装と変わらなくない) 変わりました array.Insert() がO(N)だからいくらインデックスの発見がO(logN)で挿入したら遅くなるという・・・ 謝罪 ちゃんと書きました poem 今までPythonで書いてた理由として、趣味のプログラムをPythonで書いてたのと、言語仕様を知るために活用して来たが正直もうPythonで書いてないのでC++に移行しちゃおうかなと思ってしまった 何が一番嫌って計算量の見積もりミスを(これはPythonだから遅いのでは無いのか・・・?)とPythonのせいにしてしまうのが一番嫌だった。

#chokudai今日の一問を解く #8 ABC006D – トランプ挿入ソート 50/100 点

100点 無理では 今日の一問は、トランプ挿入ソート! 現代AtCoderでは出づらいストレートな知識勝負。 問題の言い換え→アルゴリズムによる計算量の最適化、という流れは、まさに競プロ的。問題の言い換えまでは頑張ってみよう!#chokudai今日の一問https://t.co/3ZoZKOYLqk — chokudai(高橋 直大)🍆🍡🌸 (@chokudai) August 27, 2019 ほぼ解説通り、DPで出していく感じ 100点出せたら詳しく

#chokudai今日の一問を解く #7 ARC005C – 器物損壊!高橋君

MLEどうしても取れないのでこのまま投稿します・・・・ ウゴゴゴC++は偉大 今日の一問を出すのを忘れていたので、器物損壊高橋君置いておきます><#chokudai今日の一問https://t.co/xMP36188so — chokudai(高橋 直大)🍆🍡🌸 (@chokudai) August 26, 2019 案外DFSで良い、kの回数のおかげで一回探索してもより小さいkなら探索が必要で遅いかなと思ったけどなんとかなる 81/85 ACの4 MLEです。 MLEを乗り越えるにはbfsしかない・・・? 8/31 追記: bfsで書いたらACでした やったね

#chokudai今日の一問を解く #6 ABC060C – Sentou

問題を読みまちがてたシリーズ 今日の一問はSentou!前回の問題が難しかったから今日は簡単めで。 こういうのって明確に「アルゴリズム」って言われるほどのものじゃないけど、苦戦する人もいるし、さらっと組めて欲しい、って感じの問題。そんなんばっか選んでる気がする!#chokudai今日の一問https://t.co/nmlTh7JDkj — chokudai(高橋 直大)🍆🍡🌸 (@chokudai) August 25, 2019 こういう問題は紙とペンを用意してパイプラインみたいに書くと楽。 私は前の人との時間の差が入力だと勘違いして地獄を見たよ 一人めとの差だったんだね。 あとは前の人との時間差を配列で持っておくと捗る(line 4,5くらいに書いてある処理) お湯が流れるの時間の最大(TN)からロスした時間を引けば良いよ

#chokudai今日の一問を解く #5 ABC062C – Chocolate Bar

溜まってきたやばいね 今日の問題は、ABC062より、Chocolate Bar! 自分が個人的に解けてほしい問題を選んでるのが分かりやすいチョイスかなーと思うけど、これも緑くらいあったら解けてほしい問題。400点だけどね><#chokudai今日の一問 C - Chocolate Bar https://t.co/nWB7rNyyuM — chokudai(高橋 直大)🍆🍡🌸 (@chokudai) August 24, 2019 解いた 縦横三分割はO(1)で出せます。 画像下二つのパターンはforでO(n)です。 1本側の線を全探索した後、残りを2で割ってあげれば良いです。 コード見た方がわかりやすいかも

#chokudai今日の一問を解く #4 ARC006D – アルファベット探し

供給される問題について解く速度が追いついてない 頑張ります。 予定のある日が続く・・・・ 今日の問題はアルファベット探し!太古のARCのD問題! 現行システムだと500点問題くらい?競プロ慣れしてない人でもチャレンジできる難問! 水色の人でもけっこう苦戦するんじゃないかなあ。#chokudai今日の一問 https://t.co/47xE9HJYHp — chokudai(高橋 直大)🍆🍡🌸 (@chokudai) August 23, 2019 問題 8近傍DFSをして、隣り合うピクセルの数を取得、DFS中に今見ているピクセルの高さを取得してって、yが一番大きい黒いピクセルとyが一番小さい黒いピクセルを取得して、そこからその文字が何倍に拡大されたものかを見抜く、 そしたらピクセルの数に取得した拡大倍率を使って1倍の時のピクセルの数を取得する(スケーリングする) 1倍の時のピクセルの数からA,B,Cを判別する。 って感じで全探索で繰り返せばおkです。(思いっきり解答見ました) 24時間くらいあれば解ける気がするけど今のままじゃ方針立てられないと思った。 この知識を他でも生かしていきたいですね

#chokudai今日の一問を解く #3 ARC001B – リモコン

B - リモコン 7…. 7年前!?のコンテスト、すっごく昔! 最初のARCにしては超絶良問・・・なんでこんな良い問題作れるの・・・? もくじ 今回の問題 解いた 今回の問題 今日の一問は、ARC001より、リモコン!AtCoderはここから始まった。 今の基準だと簡単目の300点くらいかな?解くことは出来るだろうけど、「5分で解いて」ってなると水色レベル。早解きを意識してやってみよう!https://t.co/z4G3AIGT7z#chokudai今日の一問 — chokudai(高橋 直大)🍆🍡🌸 (@chokudai) August 22, 2019 chokudaiさんがいう通り、折角なの早解き狙い。 今回は問題にアクセスした瞬間ストップウォッチをスタートして、解いたらストップ (地味にハッシュタグつけてくれるの優しい 当ブログはハッシュタグで邪魔しないように ~を解くって感じにしていきます) 解いた (変数名がドチャクソなの本当にひどい) で、解き方なのですが割と簡単で、最良手がどんな時もただ一つしかないのでそれを選ぶだけです。 なので全ての選択肢をシミュレートして、一番目標温度に近いやつを選択していくだけです。 4 -> 5 -> 0 も 4 -> -1 -> 0 も同じで、一旦遠ざかるのが正解に見えても順番を書き換えれば必ず、目標温度に近づくのがキモです。 ちなみにちなみに AC出た瞬間にストップウォッチを止めました。 思ったより早く解けたのでとりあえず満足しています。

dele 一話に出てくるプログラムを再現してみた

Finedays Mailにログインしようとする圭司が,ブルートフォースで試すときに作ってた.パスワードのリストを作るやつです. 著作権的なもろもろがあるのでスクショとかは載せられないのでAmazon Prime会員の方はdele 1話の28:07を見てください. 今回は思考プロセスや仕組みについて書いていきます あまりプログラミングに明るくない方でも楽しめる感じで書いていくことを目標にします. もくじ 仕組みについて考える プログラムの作成 余談 仕組みについて考える 作中では圭司が以下のようなコマンドで動かしています $ ./createWordList.py yasuoka haruo haru 1974 0215 6084 44 -o p.lst Macの方はTerminal(端末)開けばコマンドを入れる場所はすぐに分かると思います.Windowsでやりたい場合はコマンドプロンプトになるかと思います. $ じゃなくて > になるけど… 圭司がMacっぽいOSで動かしている以上今回はMacに合わせて説明していきます.Windowsでやりたい人はコマンドを読み替える部分があります.(後述) 話を戻しまして,一個ずつ左からコマンドを見ていきましょう. ./createWordList.py これは実行するプログラムを指定している部分です。 “現在いるディレクトリのcreateWordList.pyっていうのを実行してください” という意味です。詳しい話は省略 で yasuoka haruo haru 1974 0215 6084 44 -o p.

「あ、やべ!彼女からLINE来たわw」←これを技術で実現する

Qiitaに書いた記事の移転です 友達と遊んでいる時に、友達がトイレに行きました。 テーブルにはその友達のスマホが置かれています。 「ピロン!」 何処からともなく音が鳴りました。 音の鳴る方へ目を向けるとテーブルにあるスマホのロック画面が目に入りました。 もくじ 「お前彼女いるんかい!!!」←これがやりたい <li> <a href="#i-2">動作方法</a> </li> <li> <a href="#My_Mission">My Mission</a> </li> <li> <a href="#Technology">Technology</a> </li> 「お前彼女いるんかい!!!」←これがやりたい もちろん彼女なんていないので、技術でカバーをします。 プロジェクト名は「ラミエルプロジェクト」です。 あまり神話には詳しくないのですが、幻視を支配する存在らしいのでそこから取りました。 ちなみにLINEの会話画面見せても、アプリバッジ見られなきゃ分からないくらい精巧です。 今回はこのラミエルプロジェクトが一旦良い感じまで行ったのでご紹介をさせて頂きます。 Project Summary ラミエルプロジェクトは何かというと、 docomo自然対話API+LINE BOT+Python(Django)を良い感じに組み合わせて、LINE BOTをまるで本物の彼女とのLINEみたいににできたらいいなを実現するプロジェクトです。 動作方法 データベースに彼女のセリフと、使用する時間をストア 時間が来たらセリフをpush message機能でLINE BOTから送信させる。 DBからLINE BOTに送信するときに、返答時間を超えたかどうかの判別をいつやるかという話ですが、これはHeroku Schdulerを使って、10分毎にcurlでリクエストを送り、そのリクエストが飛んできたら判別を行う。という仕組みなので普通に設定時刻との誤差は出ます。