Skip to content

Instantly share code, notes, and snippets.

@e-mon
e-mon / Dinic.py
Created May 28, 2015 03:06
Dinic's Algorithm
class Dinic:
class Edge:
def __init__(self, to, cap, rev):
self.to = to
self.cap = cap
self.rev = rev
def __repr__(self):
return "(to: {0} cap: {1} rev: {2})".format(self.to, self.cap, self. rev)
@e-mon
e-mon / Ford_Fulkerson.py
Last active August 29, 2015 14:21
Ford_Fulkerson.py
class Ford_Fulkerson:
class Edge:
def __init__(self, to, cap, rev):
self.to = to
self.cap = cap
self.rev = rev
def __repr__(self):
return "(to: {0} cap: {1} rev: {2})".format(self.to, self.cap, self. rev)
class RootedTree:
# G : adjcency list : 0 - indexed
# N : the number of vertex
def __init__(self,N,G):
self.N = N
self.G = G
# for lca
self.log_N = 20
struct rootedtree{
int V;
vector<vector<int> > T;
vector<vector<int> > parents;
vector<int> depth;
int log_N = 20;
rootedtree(int N, vector<vector<int> > &Tree){
V = N;
T = Tree;
# st = SegmentTree(n, lambda a,b: a if a > b else b)
class SegmentTree:
def __init__(self,n,f):
self.N = 1
self.f = f
while(self.N < n):
self.N *= 2
self.seg = [0] * (self.N * 2 -1)
def update(self,k,a):
struct edge{
int to;
int cost;
bool operator>(const edge &e)const{
return cost > e.cost;
}
bool operator<(const edge &e)const{
return cost < e.cost;
@e-mon
e-mon / wn3.1.py
Created April 24, 2015 03:15
WordNet in NLTK version up from 3.0 to 3.1
import os
nltkdata_wn = '/path/to/nltk_data/corpora/wordnet/'
wn31 = "http://wordnetcode.princeton.edu/wn3.1.dict.tar.gz"
if not os.path.exists(nltkdata_wn+'wn3.0'):
os.mkdir(nltkdata_wn+'wn3.0')
os.system('mv '+nltkdata_wn+"* "+nltkdata_wn+"wn3.0/")
if not os.path.exists('wn3.1.dict.tar.gz'):
os.system('wget '+wn31)
os.system("tar zxf wn3.1.dict.tar.gz -C "+nltkdata_wn)
@e-mon
e-mon / Dijkstra.py
Last active August 29, 2015 14:11
dijkstra
from heapq import heappush, heappop
def dijkstra(adjList,s):
num = len(adjList)
dist = [10**8 for i in range(num)]
prev = [-1 for i in range(num)]
queue = []
heappush(queue,(0,s))
dist[s] = 0
while len(queue) != 0:
#!/usr/bin/env perl
use strict;
use warnings;
use Data::Dumper;
use Digest::MD5 qw(md5_hex);
use File::Slurp;
use utf8;
my @fileList = <STDIN>;
shift @fileList;
@e-mon
e-mon / gist:72dd8f636459aa230e68
Created October 13, 2014 05:58
matplotでfigureを'q'で閉じるためのワンライナー(暫定版)
from pylab import *
gcf().canvas.mpl_connect('key_press_event', lambda event: event.key == 'q' and close(event.canvas.figure))