Skip to content

Instantly share code, notes, and snippets.

View takei-yuya's full-sized avatar

TAKEI Yuya takei-yuya

View GitHub Profile
@takei-yuya
takei-yuya / bm.cpp
Last active March 26, 2020 07:06
BM法(その1)
class BM {
public:
explicit BM(const std::string& query) : query_(query) {
for (size_t i = 0; i < query_.size() - 1; ++i) { // 最後の文字は最初に比較されるのでジャンプ計算から省く
char_pos_[query_[i]] = i;
}
}
ssize_t Search(const std::string& text, size_t i = 0) const {
while (i + query_.size() <= text.size()) {
@takei-yuya
takei-yuya / kmp.cpp
Last active April 15, 2020 01:17
KMP法
class KMP {
public:
explicit KMP(const std::string& query) : query_(query) {
next_.resize(query_.size());
if (query_.empty()) return;
next_[0] = -1;
next_[1] = 0;
size_t i = 2, j = 0;
while (i < query_.size()) {
@takei-yuya
takei-yuya / naive.cpp
Created January 14, 2020 05:53
ナイーブな文字列検索
// https://tech.retrieva.jp/entry/yyyy/dd/mm/HHMMDD
ssize_t NaiveSearch(const std::string& query, const std::string& text) {
for (size_t t = 0; t + query.size() <= text.size(); ++t) {
size_t q;
for (q = 0; q < query.size(); ++q) {
if (text[t + q] != query[q]) break;
}
if (q == query.size()) return t;
}
#!/bin/bash
set -e
scriptdir="$(cd "$(dirname "$0")"; pwd)"
script="${scriptdir%/}/$(basename "$0")"
readonly IMAGE_DIR="${HOME}/images/"
# escape docker tag for filename
#!/bin/bash
# vim: background=dark ts=2 sts=2 sw=2 et
set -e
scriptdir="$(cd "$(dirname "$0")"; pwd)"
script="${scriptdir%/}/$(basename "$0")"
readonly IMAGE_DIR="${HOME}/images/"
readonly CONTAINER_DIR="${HOME}/container/"
@takei-yuya
takei-yuya / code_block.md
Last active January 31, 2017 08:28
コードブロックの挙動。

A: indent code block

code1
code2
code3

B: fenced code block

code1
@takei-yuya
takei-yuya / A.sh
Created June 11, 2016 08:52
PFI 0610 プロコンビンゴ A問題
#!/usr/bin/env bash
pats="preferred
preferre.
preferr.d
prefer.ed
prefe.red
pref.rred
pre.erred
pr.ferred
@takei-yuya
takei-yuya / encoding.vim
Created March 24, 2014 02:35
vimの文字コード判別
set encoding=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,iso-2022-jp,utf-8,euc-jp,sjis,cp932
set termencoding=utf-8
if has('autocmd')
autocmd vimrc BufReadPost * call AU_ReCheck_FENC()
function! AU_ReCheck_FENC()
if &fileencoding =~# 'iso-2022-jp' && search("[^\x01-\x7e]", 'n') == 0
let &fileencoding=&encoding
endif

Coqチートシートっぽい何か

Coqの入手先

Coqの開発環境

  • CoqTop … CoqのREPL。ちょっとした照明を書くときには使えるかもしれないが開発するのにはほぼ使えない。後述するIDEを使うこと。