Skip to content

Instantly share code, notes, and snippets.

View shoken0x's full-sized avatar
๐Ÿ”ถ

Shoken shoken0x

๐Ÿ”ถ
View GitHub Profile
@shoken0x
shoken0x / binary_search_tree.rb
Created November 22, 2015 08:43
PCC Book: Binary Search Tree
# ไบŒๅˆ†ๆœจๆŽข็ดข Binary Search Tree
class Node
attr_accessor :val, :left, :right
def initialize(val)
@val = val
end
end
def insert(node, val)
@shoken0x
shoken0x / binary_heap.rb
Created November 22, 2015 06:21
PCC Book: Binary Heap Implementation
$heap = []
$size = 0
# heapๅฎŸ่ฃ…
def push(x)
# ใƒ’ใƒผใƒ—ใŒ็ฉบใชใ‚‰Rootใซ่ฟฝๅŠ ใ—ใฆๆŠœใ‘ใ‚‹
return $heap[0] = x if $heap.empty?
# ่ฟฝๅŠ ใ•ใ‚ŒใŸใƒŽใƒผใƒ‰ใŒๅŽใพใ‚‹index
i = $size += 1
@shoken0x
shoken0x / longest_common_subsequence.rb
Created November 19, 2015 02:20
PCC Book: Longest Common Subsequence
# input
$n = 4
$m = 4
$s = "abcd"
$t = "becd"
# 2ใคใฎๆ–‡ๅญ—ๅˆ—ใฎใ€ๅ…ฑ้€š้ƒจๅˆ†ๅˆ—ใฎ้•ทใ•ใฎๆœ€ๅคงๅ€คใ‚’ๆฑ‚ใ‚ใ‚‹
# ่งฃ 3 "bcd"
$dp = Array.new($n + 1, 0){ Array.new($m + 1, 0)}
@shoken0x
shoken0x / knapsack_problem_dp.rb
Created November 19, 2015 02:06
PCC Book: Knapsack Problem with Dynamic Programming
# input
$n = 4
$w = [2, 1, 3, 2]
$v = [3, 2, 4, 2]
$W = 5
$dp = Array.new($n + 1, 0){ Array.new($W + 1, 0)}
# ้‡ใ•$wใจไพกๅ€ค$vใฎ็ต„ใฟๅˆใ‚ใ›ใฎๅ“็‰ฉใŒ$nๅ€‹ใ‚ใ‚‹
# ้‡ใ•ใฎ็ทๅ’ŒใŒ$Wใ‚’่ถ…ใˆใชใ„ใ‚ˆใ†ใซ้ธใ‚“ใ ใจใใฎไพกๅ€คใฎ็ทๅ’Œใฎๆœ€ๅคงๅ€คใ‚’ๆฑ‚ใ‚ใ‚‹
# ๅ‹•็š„่จˆ็”ปๆณ• Dynamic Programming
@shoken0x
shoken0x / knapsack_problem_memorize.rb
Last active November 19, 2015 02:06
PCC Book: Knapsack Problem with memorize
# input
$n = 4
$w = [2, 1, 3, 2]
$v = [3, 2, 4, 2]
$W = 5
$dp = Array.new($n + 1, -1){ Array.new($W + 1, -1)}
# ้‡ใ•$wใจไพกๅ€ค$vใฎ็ต„ใฟๅˆใ‚ใ›ใฎๅ“็‰ฉใŒ$nๅ€‹ใ‚ใ‚‹
# ้‡ใ•ใฎ็ทๅ’ŒใŒ$Wใ‚’่ถ…ใˆใชใ„ใ‚ˆใ†ใซ้ธใ‚“ใ ใจใใฎไพกๅ€คใฎ็ทๅ’Œใฎๆœ€ๅคงๅ€คใ‚’ๆฑ‚ใ‚ใ‚‹
@shoken0x
shoken0x / knapsack_problem.rb
Last active November 19, 2015 02:06
PCC Book: Knapsack Problem
# input
$n = 4
$w = [2, 1, 3, 2]
$v = [3, 2, 4, 2]
$W = 5
# ้‡ใ•$wใจไพกๅ€ค$vใฎ็ต„ใฟๅˆใ‚ใ›ใฎๅ“็‰ฉใŒ$nๅ€‹ใ‚ใ‚‹
# ้‡ใ•ใฎ็ทๅ’ŒใŒ$Wใ‚’่ถ…ใˆใชใ„ใ‚ˆใ†ใซ้ธใ‚“ใ ใจใใฎไพกๅ€คใฎ็ทๅ’Œใฎๆœ€ๅคงๅ€คใ‚’ๆฑ‚ใ‚ใ‚‹
def rec(i, j)
@shoken0x
shoken0x / greedy_algorithm.rb
Last active November 19, 2015 02:07
PCC Book: ่ฒชๆฌฒๆณ• Greedy algorithm
#input
$V = [1, 5, 10, 50, 100, 500]
# 1ๅ††็މ3ๆžš, 10ๅ††็މ2ๆžš... 500ๅ††็މ2ๆžš
$C = [3, 2, 1, 3, 0, 2]
$A = 620 #620ๅ††ๆ”ฏๆ‰•ใ†
# $Aๅ††ใ‚’ๆ”ฏๆ‰•ใ†ๆœ€ๅฐใฎ็กฌ่ฒจๆ•ฐใ‚’ๆฑ‚ใ‚ใ‚‹
def slove
@shoken0x
shoken0x / breadth_first_search.rb
Last active September 21, 2016 01:34
PCC Book: ๅน…ๅ„ชๅ…ˆๆŽข็ดข(BFS: Breadth-First Seach)
# input
MAX_N, MAX_M = 100, 100
$INF = 100_000_000
str = <<"EOS"
#S.#.....#
#.....##.#
#.#.#..#..#
#..#..####
####G#####
@shoken0x
shoken0x / depth_first_search.rb
Last active November 19, 2015 02:07
PCC Book: ๆทฑใ•ๅ„ชๅ…ˆๆŽข็ดข(DFS: Depth-First Search)
# input
$n = 4
$a = [1, 2, 4, 7]
$k = 13
# ้…ๅˆ—aใ‹ใ‚‰ใ„ใใคใ‹้ธใณใ€ใใฎๅ’Œใ‚’ใกใ‚‡ใ†ใฉkใซใ™ใ‚‹ใ“ใจใŒ
# ใงใใ‚‹ใ‹ใ‚’ๆฑ‚ใ‚ใ‚‹
def dfs(i, sum)
return sum == $k if i == $n
@shoken0x
shoken0x / sVimrc
Last active July 31, 2017 01:44
sVimrc
let scrollstep = 250
let blacklists = ["*://gist.github.com/*", "*://github.com/*", "*://mail.google.com/*", "*://*.rakuten-bank.co.jp/*"]