Skip to content

Instantly share code, notes, and snippets.

View knuu's full-sized avatar

knuu knuu

View GitHub Profile
@knuu
knuu / image-downloader.py
Last active August 29, 2015 14:10
image-downloader
from urllib import request
from html.parser import HTMLParser
import datetime
import os.path
# urlと保存する場所を指定して画像を一括ダウンロードする
class MyHTMLParser(HTMLParser):
"""
HTMLをparseしてリンクを抜き出す
@knuu
knuu / Jacobi.cpp
Last active August 29, 2015 14:12
ヤコビ法
//
// Jacobi.cpp
// ヤコビ法(行列の固有値計算)
// Created by knuu on 2014/06/23.
//
//
#include <iostream>
#include <iomanip> // std::setpricision
#include <Eigen/Dense> // 行列計算のライブラリ
@knuu
knuu / Power_Method.cpp
Last active August 29, 2015 14:12
べき乗法
//
// Power_Method.cpp
// Power Iteration
// べき乗法
// Created by knuu on 2014/06/23.
//
//
#include <iostream>
#include <iomanip> // std::setpricision
@knuu
knuu / PublicTransit.cpp
Created May 14, 2015 00:33
SRM659 div.2 500 PublicTransit
class PublicTransit {
public:
int minimumLongestDistance(int R, int C) {
int ret = 200;
for (int i = 0; i < R*C; i++) {
for (int j = 0; j < R*C; j++) {
int dist[110][110];
for (int k = 0; k < R*C; k++) {
for (int l = 0; l < R*C; l++) {
int i1 = k/C, j1 = k%C, i2 = l/C, j2 = l%C;
@knuu
knuu / LuckyRemainder.py
Last active August 29, 2015 14:21
SRM509 div.2 500 LuckyRemainder
class LuckyRemainder:
def getLuckyRemainder(self, X):
N = str(X)
D = len(N)
pascalTri = [[0]*D for _ in range(D)]
for i in range(D):
pascalTri[i][0] = 1
pascalTri[i][i] = 1
for j in range(1, i):
pascalTri[i][j] = (pascalTri[i-1][j-1] + pascalTri[i-1][j]) % 9
@knuu
knuu / NumberLabyrinthDiv2.py
Created May 21, 2015 08:33
SRM509 div.2 1000 NumberLabyrinthDiv2
class NumberLabyrinthDiv2:
def getMinimumNumberOfMoves(self, board, r1, c1, r2, c2, K):
R, C = len(board), len(board[0])
INF = 10**4
dist = [[[INF for _ in range(K+1)] for _ in range(C)] for _ in range(R)]
dist[r1][c1][0] = 0
que = Queue.Queue()
que.put((r1, c1, 0))
drc = [(-1, 0), (0, 1), (1, 0), (0, -1)]
while que.qsize() > 0:
@knuu
knuu / timevs_queue.py
Last active August 29, 2015 14:22
timevs_queue
import timeit
code_list = """
import random
l = [random.randint(1, 1000) for _ in range(1000)]
que = list()
for x in l: que.append(x)
for _ in range(1000): que.pop(0)
"""
code_deque = """
import collections, random
@knuu
knuu / timevs_priority_queue.py
Created May 30, 2015 06:51
timevs_priority_queue
import timeit
code_heapq = """
import heapq, random
l = [random.randint(1, 1000) for _ in range(1000)]
pque = []
for x in l: heapq.heappush(pque, x)
for _ in range(1000): heapq.heappop(pque)
"""
code_PriorityQueue = """
import queue, random
@knuu
knuu / cdf307_2c.py
Last active August 29, 2015 14:23
Codeforces Round #307(Div. 2) - C. GukiZ hates Boxes
def check(time):
# time以下に箱を取り除けるか
box = A[:]
now = last
for student in range(m):
rest = time - now - 1 # 移動時間を引いた、残りの行動可能な時間
if rest <= 0:
# 移動できない(もしくは移動しかできない)ときはダメ
return False
while now >= 0 and rest >= 0:
@knuu
knuu / cdf308_2c.py
Last active August 29, 2015 14:23
Codeforces Round #307(Div. 2) - C. Vanya and Scales
def convert_base(num, base):
# numをbase進数に変換
converted = []
while num:
num, r = divmod(num, base)
converted.append(r)
return converted
def solve(w, m):
m_w = convert_base(m, w)