Skip to content

Instantly share code, notes, and snippets.

cmake_minimum_required(VERSION 2.8.4)
project(example-bot)
set(TgBot_INCLUDE_DIR "/usr/local/include/")
set(TgBot_LIB "/usr/local/lib/libTgBot.a")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall")
set(Boost_USE_MULTITHREADED ON)
# set(Boost_USE_STATIC_LIBS ON)
#pragma once
template <int P>
class Residue
{
public:
Residue(int a);
~Residue();
bool operator == (Residue<P> b) const;
@drewxa
drewxa / Graph.h
Last active February 11, 2018 19:16
#pragma once
#include <set>
template <class CostType, class VertexId>
class Graph
{
public:
Graph();
~Graph();
@drewxa
drewxa / Polynom.h
Last active January 20, 2018 18:30
#pragma once
#include <vector>
template <class T>
class Polynom
{
Polynom();
~Polynom();
Polynom(const std::vector<T>& coef);
  1. Реализуйте слияние двух отсортированных массивов в один отсортированный. Алгоритм должен работать со сложностью по времени O(N + M), где N и M длины массивов.
template <class It, class Out>
Out merge(It first1, It last1, It first2, It last2, Out out);
  1. Реализуйте алгоритм сортировки слиянием. Описание алгоритма можно найти в книге Дональда Кнута - Искусство программирования. Том 3. Сортировка и поиск. Глава 5.2.4. Стр 174.
@drewxa
drewxa / hw.md
Last active February 3, 2018 17:41

Домашнее задание 1

  • map - красно-черное дерево/BST
  • hashtable
  • set - красно-черное дерево/BST
  • unordered_set
  • dynamic_bitset
  • развернутый список
  • forward_list, list, queue, stack
  • префиксное дерево
struct Object {
virtual void OnCollision(Object * other) = 0;
virtual ~Object() = default;
};
struct Ship : public Object { ... };
struct Asteroid : public Object { ... };
// отрефакторить функцию так, чтобы не использовались type_info, dynamic_cast и подобного
// должно масштабироваться на большое количество наследников Object
Ship::OnCollision(Object * o) {
#include <iostream>
#include <numeric>
#include <string>
class trie {
struct node {
node* children[std::numeric_limits<char>::max()] = { 0 };
bool leaf = false;
node* next(char c) const
struct Node
{
Node* Parent;
Node* Left;
Node* Right;
T Value;
};
template <class T>
@drewxa
drewxa / rk2.md
Last active April 17, 2018 07:18

Типовое задание для РК 2

Задание

Требуется реализовать класс разбора текстового файла определенного формата и продемонстрировать его работу.

Задача 1

Реализуйте класс для хранения объектов. Объекты являются key-value хранилищем с дополнительным функционалом. Требуется реализовать:

  • метод для получения значения по ключу. Если такого ключа нет, метод генерирует исключение;
  • метод для изменения значения по ключу;