川のブログ

川の適当気ままなブログです。 

パーティー!アフターパーティー!!を観劇してみて

観劇しすごく心揺さぶられたので、鉄が熱いうちに叩いておこうと??

昔使っていたブログを引っ張り出してみました笑

What

1/31 15:30公演を見させていただきました!!!

知り合いが楽しそうにしているのをみて、ちょっと見てみたくなったのがきっかけです

一般のチケット?で予約して見させていただきました。

感想

前置き(ネタバレないようにがんばってみたつもりです....)

腹抱えて笑わせていただきました笑

一旦パンフレット順に印象を、

ナツエさん!!!! お仕事!!!!
ってずっとおもってました笑
またいいタイミングで出てくる笑

サトルさん!!!
最初一人でおいおいって突っ込んでました笑
最後チョーかっこよかったです笑
最後のあいさつのホッとした感じにキュンとしたり笑

クミコ大変!!!
サトルさんとの関係すきだなぁ笑
最初「えっえっ」ってなったけど、最終的に一番ホットしてました笑
すごかった笑(語彙力???)

ツバサは一番驚きがすごかったです!
前半のあれはそういうことかと
最後のあいさつを聞いている際に、ひとりこんらんしてました笑

マツモトさんのキャラクター好き!!!!!!!
なんか似た経験があって勝手に一部自分を重ねてました笑
ひょうきんでどこか残念なマツモト...
後ろにいるときにひたすらアタックしているあれは頭を抱えてました笑  

アンズさんの野球ネタは唐突すぎてずるい笑
しかもあの余韻はもっとずるい笑
片思いくるしいなって改めてめちゃくちゃおもいました。ただ、いいんですよね笑

ナオミさん!!!
マツモトとの掛け合いめっちゃ笑いました笑
個人的には結ばれてほしくて、でもあーなって複雑な気持ちに...
でも幸せならOKです!!!!!!?????

__________________________________________________________________________________
そんな人に誇れるほど恋愛をしたことないし、大学通ってないので想像でしかわかんなかったり...
作品の内容をみて楽しめるのかなぁと思っていたんですが、最終的には爆笑して、元気が湧いてきました笑

前を向かいて二次会、三次会ですね!!!
めちゃくちゃ楽しかったです!!!

本当にありがとうございました!!!

これからのご活躍お祈りしております!!!!

(感想語彙力ない...)

AOJ 0099 Surf Smelt Fishing Contest II

こんにちかわです。

久しぶりに解いていきたいと思います。

ソースコード

#include <bits/stdc++.h>
using namespace std;
int main(void){
    int n,event;
    cin>>n>>event;
    
    vector<int> possessionfish(n+1, 0);
    vector<int>::iterator iter;
    
    int index, topNum = -1;
    int fishing,num;
    
    for(;event>0;--event){
        cin>>num>>fishing;
        possessionfish[num]+=fishing;
        
        if(topNum == -1)topNum = num;
        else if(fishing > 0){
            if(possessionfish[num] > possessionfish[topNum] || (topNum > num && possessionfish[num] == possessionfish[topNum]))topNum = num;
        }else if(topNum == num){
            iter = max_element(possessionfish.begin(), possessionfish.end());
            index = distance(possessionfish.begin(), iter);
            topNum = index;
        }
        
        cout<<topNum<<" "<<possessionfish[topNum]<<endl;
    }
}

普通に解くだけなら

iter = max_element(possessionfish.begin(), possessionfish.end());
index = distance(possessionfish.begin(), iter);
topNum = index;

の部分だけでOKですが、

計算量を減らさないといけないため

Topの人のインデックスを保存しておき、

イベントごとの釣った数が正の場合は比較、

負の場合は上記の探し出すコードを利用しました。

リーダブルコードを読む part9

こんにちはかわです。

アドベントカレンダー24記事目です。

以下の続きです。

kawakawa.hatenablog.com

9章 変数と読みやすさ

  1. 変数が多いと変数を追跡するのが難しくなる。
  2. 変数のスコープが大きいとスコープを把握する時間が長くなる。
  3. 変数が頻繁に変更されると現在の値を把握するのが難しくなる。

1 変数を削除する

役に立たない一時変数

以下を満たしている確認する + 複雑な文を分割している + 明確になっている + 複数回使われている

中間結果を削除する

中間結果を保持するより、タスクを早く完了できないかを検討すべき。

制御フロー変数を削除する

doneのようなループのいろんなところにtrueがある変数

これは削除できる

また、 複雑なループ(ネストが何段もあるループ)はコードを

新しい関数に移すなどすべし。

2 変数のスコープを縮める

変数のことが見えるコード行数をできるだけ減らす。

→一度に考えなければいけない変数を減らせるから。

メンバ変数

メンバ変数はクラスの中で「ミニグローバル」になっていると言える。

「ミニグローバル」はできるだけ減らすべき。

staticにしたり、ローカル変数に格下げたりする。

大きなクラスを小さなクラスに分割するのも良い。

c++ のif文のスコープ

if文の条件式のためだけに使われている変数は

条件式の中で定義すればいい

JavaScriptで「プライベート」変数を作る

変数をクロージャで包むのもいい。

JavaScriptのグローバルスコープ

Javascriptはvarをつけないとグローバルスコープになってしまう

気をつける

PythonJavaScriptのネストしないスコープ

C++Javaのような言語にはブロックスコープがある。

しかしPythonJavaScriptは関数全体にこぼれ出る。

定義位置を下げる

使う直前に変数宣言をする。

3 変数は一度だけ書き込む

変数を操作する場所が増えると、現在値の判断が難しくなる

以上