Skip to content

Instantly share code, notes, and snippets.

View rikuTanide's full-sized avatar

riku tanide rikuTanide

View GitHub Profile
@rikuTanide
rikuTanide / conv.cpp
Last active December 15, 2020 05:46
座標圧縮ライブラリ
class Conv {
ll cursor = 0;
map<ll, ll> to_short; // <original, small >
map<ll, ll> to_long; // <small, original>
std::set<ll> tmp;
bool build_end = false;
void set(ll original) {
if (to_short.find(original) != to_short.end()) {
@rikuTanide
rikuTanide / range_count.cpp
Created February 21, 2020 01:14
配列の中でA以上B以下の要素の数などを簡単に求める
// startは含む
// endは含まない
RangeCount range_count(vector<int>::iterator start, vector<int>::iterator end, int l, int r) {
if (l > r) return RangeCount{0, 0, 0, 0, 0};
if (start >= end) return RangeCount{0, 0, 0, 0, 0};
if (l == r) {
RangeCount rc;
auto it_u = upper_bound(start, end, r);
@rikuTanide
rikuTanide / order.cpp
Last active January 20, 2020 04:43
i番目の要素がソートした時に何番目か記憶しておいてくれるもの
class Order {
vector<int> v;
vector<int> order;
public:
Order(vector<int> &v) : v(v), order(v.size()) {
vector<P> tmp(v.size());
rep(i, v.size()) {
tmp[i].first = v[i];
tmp[i].second = i;
}
@rikuTanide
rikuTanide / keta.cpp
Last active January 24, 2020 12:35
桁毎に何か計算するときに便利なライブラリ。
class Keta {
vector<int> digits;
public:
Keta(ll i) : digits(i == 0 ? 1 : log10(i) + 1) {
for (int k = 0; k < digits.size(); k++) {
digits[k] = i % 10;
i /= 10;
}
struct Triangle {
int parent;
vector<int> children;
};
class Tree {
vector<vector<int>> edges;
public:
Tree(int n) : edges(n) {}
@rikuTanide
rikuTanide / bootcamp2.rb
Created April 29, 2019 12:21
二つのdefer scriptがあり、二個目のscriptタグが先に届く
#!/usr/bin/env ruby
require "socket"
require 'thwait'
server = TCPServer.open(3000)
htmlsoc = server.accept
threads = []
@rikuTanide
rikuTanide / bootcamp2.rb
Created April 29, 2019 12:19
二つのasync scriptがあり、二個目のscriptタグが先に届く
#!/usr/bin/env ruby
require "socket"
require 'thwait'
server = TCPServer.open(3000)
htmlsoc = server.accept
threads = []
@rikuTanide
rikuTanide / bootcamp1.rb
Created April 29, 2019 12:10
HTML送信中にスクリプトが届く
#!/usr/bin/env ruby
require "socket"
require 'thwait'
server = TCPServer.open(3000)
htmlsoc = server.accept
threads = []
@rikuTanide
rikuTanide / normalize2.dart
Created October 14, 2017 13:47
正規化した
class Video {
String videoID;
}
class User {
String userID;
}
class PlayEvent {
String userID;
@rikuTanide
rikuTanide / normalize1.dart
Created October 14, 2017 13:43
正規化していない
class Video {
String videoID;
List<String> playedUsers;
}
class User {
String userID;
List<String> playedVideos;
}