Skip to content

Instantly share code, notes, and snippets.

View mbuzdalov's full-sized avatar

Maxim Buzdalov mbuzdalov

View GitHub Profile
@mbuzdalov
mbuzdalov / solution.cpp
Last active October 11, 2019 23:25
A solution to the Timus problem 1394 to be challenged in Evolutionary Computation courses at ITMO University
#include <functional>
#include <algorithm>
#include <iostream>
#include <sstream>
#include <complex>
#include <numeric>
#include <cstring>
#include <vector>
#include <string>
#include <cstdio>
import java.util.concurrent.TimeUnit;
import org.openjdk.jmh.annotations.*;
@State(Scope.Benchmark)
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
@Timeout(time = 10)
@Warmup(time = 1, iterations = 10)
@Measurement(time = 1, iterations = 3)
using System;
using System.IO;
using System.Numerics;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;
public class MergeLong {
/** A copy of the mergesort for "long" **/
@mbuzdalov
mbuzdalov / Explicit.scala
Created September 7, 2017 14:54
Example with explicitly specified type for implicits
class Config(n: Int, k: Int, onePlusOne: Boolean, init: Int, rlAlgorithm: Option[Agent[Int, Int]])
extends OptConfiguration[BitSet, IndexedSeq[Int]]
{
require(n % k == 0)
private implicit val multiple: MultipleCriteria[IndexedSeq[Int]] = MultipleCriteria.fromIndexedSeqWithElementOrdering("XdivK", "OneMax")
private implicit val comparator: EARLCodomainComparator[IndexedSeq[Int]] = EARLCodomainComparator().fromMultipleCriteria(init)
private implicit val evaluator: Evaluator[BitSet, IndexedSeq[Int]] = Evaluator().usingFunction { v: BitSet =>
val oneMax = v.size
val xDivK = oneMax / k
@mbuzdalov
mbuzdalov / Inferred.scala
Created September 7, 2017 14:52
Example with inferred implicits
class Config(n: Int, k: Int, onePlusOne: Boolean, init: Int, rlAlgorithm: Option[Agent[Int, Int]])
extends OptConfiguration[BitSet, IndexedSeq[Int]]
{
require(n % k == 0)
private implicit val multiple = MultipleCriteria.fromIndexedSeqWithElementOrdering("XdivK", "OneMax")
private implicit val comparator = EARLCodomainComparator().fromMultipleCriteria(init)
private implicit val evaluator = Evaluator().usingFunction { v: BitSet =>
val oneMax = v.size
val xDivK = oneMax / k