yaworsw/euler-manager

View on GitHub
data/problems/289.yml

Summary

Maintainability
Test Coverage
---
:id: 289
:name: Eulerian Cycles
:url: https://projecteuler.net/problem=289
:content: "Let C(<var>x</var>,<var>y</var>) be a circle passing through the points
  (<var>x</var>, <var>y</var>), (<var>x</var>, <var>y</var>+1), (<var>x</var>+1, <var>y</var>)
  and (<var>x</var>+1, <var>y</var>+1).\n\nFor positive integers m and n, let E(<var>m</var>,<var>n</var>)
  be a configuration which consists of the <var>m</var>·<var>n</var> circles:  \n{
  C(<var>x</var>,<var>y</var>): 0 ≤ <var>x</var> \\< <var>m</var>, 0 ≤ <var>y</var> \\< <var>n</var>,
  <var>x</var> and <var>y</var> are integers }\n\nAn Eulerian cycle on E(<var>m</var>,<var>n</var>)
  is a closed path that passes through each arc exactly once.  \nMany such paths are
  possible on E(<var>m</var>,<var>n</var>), but we are only interested in those which
  are not self-crossing: A non-crossing path just touches itself at lattice points,
  but it never crosses itself.\n\nThe image below shows E(3,3) and an example of an
  Eulerian non-crossing path.\n\n ![p289_euler.gif]({{ images_dir }}/p289_euler.gif)\n\nLet
  L(<var>m</var>,<var>n</var>) be the number of Eulerian non-crossing paths on E(<var>m</var>,<var>n</var>).
  \ \nFor example, L(1,2) = 2, L(2,2) = 37 and L(3,3) = 104290.\n\nFind L(6,10) mod
  10<sup>10</sup>.\n\n"