競技プログラミングのメモ

数値の大きさ

  • 32bit int = 2147483648 ≒ 2 * 109。 値域で 109 って書いてあったら2倍越えで溢れるということ。

時間の感覚

  • 100,000,000 = 108 = 1 億で 1 秒と考える。複雑な計算では TLE するかもしれない。

C++ STL

  • algorithm
    • max()
    • min()
    • sort()
    • next_permutation()
  • vector
  • map

アルゴリズム名称

界隈のジャーゴン

Firebase のメモ

Firebase (Cloud functions)

  • firebase (https://console.firebase.google.com/) でプロジェクト作る
  • sudo npm install -g firebase-tools # ツールのインストール
  • sudo npm install -g firebase-admin
  • firebase init
  • firebase deploy
  • sudo firebase serve --only functions

Update 作業

  • sudo npm install -g firebase-tools # 更新のインストール 何回か実行が必要な場合がある

Code

  • index.js
exports.homeAutomation = functions.https.onRequest((request, response) = > {
  response.send("Hello from Firebase!");
});
  • 基本的に Express と同じらしい

apt-get 操作メモ

(設定ファイルも含めて)パッケージを削除。ワイルドカード

sudo apt-get purge packagename*

パッケージの検索。正規表現利用可。

sudo apt-cache search 'nvidia-[\d+]'

会社アカウント等での個人 git への誤 commit 防止

#!/bin/bash

DIR=$(pwd)
EMAIL=$(git config user.email)

if [[ "$DIR" =~ ^/home/hogehoge/private/ ]]
then
    if [[ ! "$EMAIL" =~ @users.noreply.github.com$ ]]
    then
        echo "Error: git config user.email = $EMAIL"
        exit 1
    fi
fi
  • ファイル実行権限をつける (chmod 755)
  • git のテンプレートに設定する。git init 等で自動的に .git/hooks にコピーされる。
git config --global init.templatedir '~/.git_template'
  • /home/hogehoge/private/ 以下にあるフォルダで git commit する場合、その git の user.email が @users.noreplay.github.com を含んでなければエラーとなる。 (フォルダと email の規則は例です)

TopCoder メモ

Java Applet が Security 警告で起動しない

スクリプト

#!/bin/bash

function make {
    MAKE=`which make`
    if [ ! -f Makefile ]; then
        $MAKE -f ../Makefile -j9 $*
    else
        $MAKE -j9 $*
    fi
}

wget --backups=1 http://www.topcoder.com/contest/arena/ContestAppletProd.jnlp
javaws ContestAppletProd.jnlp

Ubuntu 16.04 で x230 がスリープしない

原因

Jun  3 04:14:22 x230 kernel: [ 1785.787010] pci_pm_suspend(): e1000e_pm_suspend+0x0/0x40 [e1000e] returns -2
Jun  3 04:14:22 x230 kernel: [ 1785.787013] dpm_run_callback(): pci_pm_suspend+0x0/0x140 returns -2
Jun  3 04:14:22 x230 kernel: [ 1785.787015] PM: Device 0000:00:19.0 failed to suspend async: error -2
Jun  3 04:14:22 x230 kernel: [ 1785.787049] PM: Some devices failed to suspend, or early wake event detected

ウェブで調べたところ最新の Intel のドライバを入れるのが正しそう。

$ lspci
...
00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04)

https://downloadcenter.intel.com/ja/search?keyword=82579LM

からソースコードを取得して sudo make install、 再起動

Dropbox のアイコンの左クリックメニューが gnome-flashback で表示されない

/usr/bin/dropbox の import 後に 1 行加える。

os.environ['XDG_CURRENT_DESKTOP'] = 'Unity'

indicator - Dropbox AppIndicator Menu broken in gnome-flashback - Ask Ubuntu