今回の問題はこちらです。
[blogcard url=”https://beta.atcoder.jp/contests/abc079/tasks/abc079_c”]
実装方法は・・・力技です。ARCぐらいになると、四則演算を用いて~になるんでしょうが、今回は+か-なので、優先順位はないのでゴリ押し戦法OKです。
つまりは、”8個if分書けばいい”という回答が通ります。
私が書いた頭の悪いコードは次のとおりです。
続きを読む
内なる紛争クリア
最近warframe復帰しました。
今まで400時間ほどプレイしてて、いろいろあって休止して、また復帰した感じです。
wiki見てたら、「内なる紛争クリア」が条件になってるクエスト多くて、はー?って感じでやっていました。
内なる紛争解放条件のセドナジャンクションクリア条件の「ルアの基礎チャレンジルームでMODを3枚収集(要3種類)」が大変でした。
ルアのPavlov(潜入)をぐるぐるしてると揃ったので良かったですが・・・。そもそもPavlovのA,B,Cへの行き方が難しくて・・・。
基礎チャレンジルーム、ルームって言う割にはルームじゃないし・・・。ソロで一番ラクだったのが、狡猾さテストだと思います。
誘爆誘って柱撃たせてっていうのを4回繰り返します。柱へは3回キューブの攻撃当てないと壊れないぐらい。こっちも爆風喰らいますけど、TRINITY4番撃ってれば死なないので。
wiki見てくれたほうが早いと思います。
さて、クエスト解放後はサクサク行きました。フォーカス出てきたあたりで休止してたので、今こうなったんかーって感じでした。
手に入った近接武器、使えるんかな?とりあえずレベル上げしないと。
stringの終端って何があるの?
サークル活動でやることがないということで、CpawCTFの問題をときました。
CTFって?
CTFとは? Capture The Flag(旗取りゲーム)の略. 情報セキュリティの技術を競う競技・ゲーム. 隠された答え(Flag)をセキュリティのスキルを用いて. 探し、答えをサーバへ送信するクイズ形式が多い.
有名所だと、
ksnctf
CpawCTF
などがあります。
私がやったことは上の2つだけなので、経験が殆どないといいですが、初心者ならCpawCTFのほうが簡単かなあと思います。
今回、サークルでは延々と問題を解くというのをやってました。その中で、string使う時使えるかなあと言うのが合ったのでメモ。
続きを読む
Cで線形リスト
C言語で線形リスト書けっていう課題が出たので、絶対忘れるので備忘録。
C++なら双方向リストクラスがあるんですがね・・・。
[blogcard url=”http://vivi.dyndns.org/tech/cpp/list.html”]
Cで書けという制約があるので、書いていきましょう。 続きを読む
incdex.htmlを置いてもファイルがないと言われた話
11月の頭にxserverでレンタルサーバを契約して色々しているわけですが、前にNGT君に
「ateruimasnin.com/にアクセスしても何も表示されないの悲しくね?」
と言われて、暇だし~という感覚でやってたわけです。
調べてみると、“public_html直下にindex.htmlを置けばいい”らしいので、元あったindex.htmlを削除して、FTPを使って自分で作ったindex.htmlをアップロードして、表示・・・されない!?
“このWEBスペースへは、まだホームページがアップロードされていません。”
何度確認しても、指定された場所にindex.htmlがある・・・。
元のファイルじゃないとダメなのかなと思い、キャッシュから拾い上げてきたindex.htmlをちょっといじってアップロードするも、変わらず。
.htaccessにDocumentIndexディレクティブを記述したらいい、とあって早速やってみるも、ダメ。
「このファイルパーミッションとやらを弄ればいいのか!?」と思ってファイルパーミッションって単語を調べて、やってみるも、違う。
じゃあ何やねん!って2時間格闘した末に
「このWEBスペースへは、まだホームページがアップロードされていません。」という文字列をそのまま検索にかけました。
[card url=”https://www.xserver.ne.jp/support/faq/faq_service_hp_trouble.php”]
xserverのヘルプページが一番上に出てきて、あまり期待しないまま開いてみると、まあ、自分が何度も確認した事が書いてある。
一番下に、“上記をご確認いただき、問題が改善しない場合は、ブラウザ側のキャッシュを削除した上で、再度アクセスをお試しください。”とあったので、こんなんで直らんだろと思いながらキャッシュクリアして再接続。
表示されました。
教訓としては、ヘルプはちゃんと探して読もう、ということです。
さて、index.htmlがちゃんと上がったので、このindex.htmlを人に見せても恥ずかしくないぐらいなページにしないとな・・・。
計画としては、2つのサイトの更新したページを合算して流す予定です。
C++のsetやmapを使ってみる
サークルでバーチャルコンテストが行われ、その時「はえー便利だなー」ってなったことの備忘録です。
AtCoder ABC019 C問題を解いてる時、「setを使うと楽ですよ」と言われて、教えてもらいながら実装してみました。
問題はこちらです。
[blogcard url = "http://abc019.contest.atcoder.jp/tasks/abc019_3"] <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-more="more" data-wp-more-text="" class="wp-more-tag mce-wp-more" alt="" title="続きを読む..." data-mce-resize="false" data-mce-placeholder="1" /> 私の解答の方針は以下の通り <strong>「入力された数値を2で割り続け、割り切れなくなったところの数字を保存する。最後に保存された数字(重複除く)の数を数えて出力する」</strong> という単純作業の繰り返しでできます。 ここで面倒くさいのは、"保存された数字(重複除く)"という点です。 vectorに入れてた場合、sortしてuniqueで消していくという方法で重複をなくせるらしいです。 [blogcard url="https://qiita.com/ysk24ok/items/30ae72f4f1060b088588"] いろいろな方法がありますね・・・(vectorのuniqueとか知らなかった) 今回はsetを使って実装しました。 setとmapの特徴は以下の通り。 ・set はデータの追加・削除・検索の処理速度が O(log N) と高速 ・自動的にソートしてくれる mapとsetの違いについては、 setはキーのみを要素とするが、mapはpairを要素とする こと・・・らしいです。 [blogcard url="http://vivi.dyndns.org/tech/cpp/set.html"] [blogcard url="http://futurismo.biz/archives/1901"] 今回の解答の方針は以下の通りでした。「入力された数値を2で割り続け、割り切れなくなったところの数字を保存する。最後に保存された数字(重複除く)の数を数えて出力する」 この場合、setを使うと重複された数字は保存されずに済みます。 ということで、私が書いたコードは以下の通りになります。
[cpp] #include &amp;amp;lt;iostream&amp;amp;gt; #include &amp;amp;lt;set&amp;amp;gt; using ll = long long; using namespace std; int main(int argc, char const *argv[]) { int n; cin&amp;amp;gt;&amp;amp;gt;n; ll a[n]; for(int i=0;i&amp;amp;lt;n;i++) cin&amp;amp;gt;&amp;amp;gt;a[i]; set&amp;amp;lt;ll&amp;amp;gt; st; for(int i=0;i&amp;amp;lt;n;i++){ while (a[i]%2!=1) { a[i]=a[i]/2; } st.insert(a[i]); } cout&amp;amp;lt;&amp;amp;lt;st.size()&amp;amp;lt;&amp;amp;lt;endl; return 0; } [/cpp] このコード書いてる時、
[cpp] #define ll long long int [/cpp] って書くのめんどくさくない?って言ったら、clawさんが
[cpp] using ll = long long; [/cpp] って書き方を教えてくれました。C++11で追加されたらしいです。はえー。 まだまだ知らないこと多いなあと思った日でした。