Skip to content

Instantly share code, notes, and snippets.

@cocodrips
cocodrips / Bonuses.java
Last active December 19, 2015 00:00
SRM145 DIV1 250 配列は参照渡しになるからのコピーはforでまわす(´・ω・`)
public int[] getDivision(int[] points) {
int total = 0;
int[] ans = new int[points.length];
total = arrayTotal(points);
for (int i = 0; i < ans.length; i++) {
ans[i] = (int) Math.floor(((double)points[i]/(double)total) * 100);
}
int otsuri = 100 - arrayTotal(ans);
@cocodrips
cocodrips / RectangularGrid.java
Last active December 19, 2015 01:09
SRM 146 DIV1 300 長方形の中に長方形(正方形を除く)はいくつある?
public long countRectangles(int width, int height) {
long count = 0;
count = calcCombination(width+1, 2)*calcCombination(height+1, 2);
int short_side = Math.min(width, height);
for (int i = 0; i <= short_side; i++) {
count -=(width - i) * (height - i);
}
return count;
}
@cocodrips
cocodrips / binarySearch.java
Created July 5, 2013 21:24
二分探索 while版
int binarySearch(int[] array, int x){
int low = 0;
int high = array.length-1;
int mid;
while (low <= high) {
mid = (low + high) / 2;
if(array[mid]< x){
low = mid + 1;
@cocodrips
cocodrips / binarySearchRecursive.java
Created July 5, 2013 21:25
二分探索 再帰ver
int binarySearchRecursive(int[] array, int x, int low, int high){
if(low > high) return -1;
int mid = (low + high) / 2;
if (array[mid] < x) {
return binarySearchRecursive(array, x, mid + 1, high);
}else if(array[mid] > x){
return binarySearchRecursive(array, x, low, mid - 1);
}else{
return mid;
}
@cocodrips
cocodrips / MergeSort.java
Created July 5, 2013 21:27
mergeSort in Java
void mergeSort(int[] array, int low, int high){
if(low < high){
int middle = (low + high) / 2;
mergeSort(array, low, middle);
mergeSort(array, middle+1, high);
merge(array, low, middle, high);
}
}
void merge(int[] array, int low, int middle, int high){
@cocodrips
cocodrips / QuickSort.java
Created July 5, 2013 21:28
quickSort in Java
void quickSort(int[] array, int left, int right){
int index = partition(array, left, right);
if(left < index - 1){
quickSort(array, left, index - 1);
}
if(index < right){
quickSort(array, index, right);
}
}
@cocodrips
cocodrips / Combination.java
Created July 6, 2013 00:31
ある集合の部分集合を全部書きだす
ArrayList<ArrayList<Integer>> getSubsets(ArrayList<Integer> set, int index){
ArrayList<ArrayList<Integer>> allSubsets;
if(set.size() == index){
allSubsets = new ArrayList<ArrayList<Integer>>();
allSubsets.add(new ArrayList<Integer>()); //空集合追加
}else{
allSubsets = getSubsets(set, index+1);
int item = set.get(index);
ArrayList<ArrayList<Integer>> moreSubset = new ArrayList<ArrayList<Integer>>();
@cocodrips
cocodrips / ext.perl
Created August 21, 2013 14:47
PerlでMeCab + TermExtractを使う。 TermExtractはここから。http://gensen.dl.itc.u-tokyo.ac.jp/termextract.html
use strict;
use warnings;
use utf8;
use Text::MeCab;
use Text::TermExtract;
use TermExtract::MeCab;
use Data::Dumper;
_extract_keyword();
@cocodrips
cocodrips / futarigumi.py
Created August 23, 2013 03:02
二人組をランダムでつくるスクリプト
import random
import sys
argvs = sys.argv
members = argvs[1:]
random.shuffle(members)
for i in xrange(0,len(members)):
if(i%2 == 1):
print members[i]
@cocodrips
cocodrips / futarigumi2.py
Created August 23, 2013 07:16
二人組ランダム改訂版
import random
import sys
argvs = sys.argv
members = argvs[1:]
random.shuffle(members)
members.append("teacher")
for i in xrange(len(members)/2):
print str(members[2*i]) + ":" + str(members[2*i+1])