DKey.Algorithms 1.3.0

dotnet add package DKey.Algorithms --version 1.3.0                
NuGet\Install-Package DKey.Algorithms -Version 1.3.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DKey.Algorithms" Version="1.3.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DKey.Algorithms --version 1.3.0                
#r "nuget: DKey.Algorithms, 1.3.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install DKey.Algorithms as a Cake Addin
#addin nuget:?package=DKey.Algorithms&version=1.3.0

// Install DKey.Algorithms as a Cake Tool
#tool nuget:?package=DKey.Algorithms&version=1.3.0                

DKey.Algorithms

DKey.Algorithms is a library that provides basic algorithms and data structures implementation in C#.

Currently Implemented:

  • Data Structures
    • Graph
    • Tree
    • Sorted Multiset
    • Segment Tree
    • Generic Suffix Tree
    • Short Suffix Tree
    • Prefix Trie
    • Red-Black Tree
  • Graph Processing
    • Depth First Search
    • Breadth First Search
    • Generic graph statistics (Components, Cycle, Shortest path, Diameter)
    • Dijkstra Algorithm
  • Number Theory
    • Prime Arithmetic
    • Binary Arithmetic
    • Modular Arithmetic
    • Combinatorics
  • Argument Search
    • Binary Search
    • Ternary Search
    • Sorted Data Search
  • Data Manipulation
    • IOHelper
    • Tokenizer
    • Random Data Generator (for lists, strings and graphs)
  • Others
    • Problem Solver and MultiSolver
    • LINQ Extension

DKey.Codeforces

DKey.Codeforces contains favorite examples of solutions for Codeforces Problems that can be used as a template for solving and testing problems, not limited to Codeforces.

To run a new solution:

  • Create a new Solver class
  • The Solver constructor should contain the types of parameters that are going to be parsed and delivered in arguments of the Solve() method
  • The Solve() method should contain the solution logic and use output.Append() or output.AddL() to append the result to StringBuilder that will print output at the end of the program
  • Swap the Solver class in program.cs to run your solver
  • Use the MultiSolver instead, if the problem input starts with number of test cases followed by multiple test cases.

ContestTemplateBuilder can be used to create contest templates to work in this project.

Utils

DKey.ContestSubmissionBuilder

DKey.ContestSubmissionBuilder is a console application to build a single file submission for Codeforces problems.
It takes the EntryPoint of your solution (supposedly program.cs located in DKey.Codeforces) as root and builds a single file submission combining the subtree of dependencies.
Traverse through tree of dependencies is not perfect.
To use application correctly, please, follow these rules

  • 1 class = 1 file
  • Class name should be the same as the file name
  • Class name should contains only letters and digits
  • Don't use short class names that can be confused with other keywords and methods (like List or Copy)
  • Use file-scoped namespace declarations like namespace x; instead of namespace x{}
  • Your files should contain class, struct, enum or interface
  • Don't name you variables like other classes (usually only problem for public members, as they start with UpperCase)
  • Be careful with static extension methods (with this keyword), as their class name is not garanteed to be in dependent class and might be skipped while combining submission. Extension should be in their own namespace and should be added manually to config of ContestSubmissionBuilder.
  • Try to avoid complex static classes with many dependencies, if only 1 method might be required from it, as it will lead to a lot of unnecessary dependencies in submission.cs

Please note that violating most of the rules will result in unnecessary classes in submission.cs, but some might break the logic.

DKey.ContestTemplateBuilder

DKey.ContestTemplateBuilder generates folder Contest{number} in DKey.CodeForces and fill it with 6 solution templates based on MultiSolver for Problems A-F.

DKey.ContestProcedure

DKey.ContestProcedure creates submission file and launch Codeforces.Program.Main() simultaneously. Perfect for checking the test output or debugging right before submitting the solution.

Thank you for using DKey.Algorithms!

Contacts:

dmitry.anikeyev@gmail.com

Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net7.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.3.0 87 10/14/2024
1.1.0 220 4/9/2023
1.0.5 208 4/8/2023
1.0.4 258 4/4/2023
1.0.3 252 4/4/2023
1.0.2 252 4/3/2023
1.0.1 257 3/31/2023
1.0.0 199 3/31/2023