<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Md Shohan</title>
    <description>The latest articles on DEV Community by Md Shohan (@md_shohan_102187760726951).</description>
    <link>https://dev.to/md_shohan_102187760726951</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4114816%2F2173a316-7244-4f89-889d-1d4eafd2378d.png</url>
      <title>DEV Community: Md Shohan</title>
      <link>https://dev.to/md_shohan_102187760726951</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/md_shohan_102187760726951"/>
    <language>en</language>
    <item>
      <title>Free Tools Every Competitive Programmer Should Bookmark</title>
      <dc:creator>Md Shohan</dc:creator>
      <pubDate>Tue, 08 Sep 2026 03:43:22 +0000</pubDate>
      <link>https://dev.to/md_shohan_102187760726951/free-tools-every-competitive-programmer-should-bookmark-p3f</link>
      <guid>https://dev.to/md_shohan_102187760726951/free-tools-every-competitive-programmer-should-bookmark-p3f</guid>
      <description>&lt;p&gt;If you've ever lost 20 minutes at 2 AM debugging a submask enumeration loop, or drawn a segment tree on paper for the fifth time this month, this post is for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj14ovgnd473v7267b5fu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj14ovgnd473v7267b5fu.png" alt=" " width="800" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I want to share a collection of 31 free, browser-based tools built specifically for competitive programming — no signup, no installs, code stays client-side. They're grouped at &lt;a href="https://www.utilitytoolslab.com/category/competitiveprogramming" rel="noopener noreferrer"&gt;Utility Tools Lab's Competitive Programming category&lt;/a&gt;, and they cover almost every "I wish there was a tool for this" moment from contest practice.&lt;/p&gt;

&lt;p&gt;Here's a tour of what's inside.&lt;/p&gt;

&lt;p&gt;Visualizing structures you normally only imagine&lt;/p&gt;

&lt;p&gt;Half the pain in CP isn't the algorithm — it's seeing what your data structure is actually doing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/graph-visualizer" rel="noopener noreferrer"&gt;Graph Visualizer&lt;/a&gt; — paste a CP-style edge list and get a force-directed graph you can drag around. Toggle directed/undirected and 0/1-indexing, then copy the adjacency list back out.&lt;br&gt;
&lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/segment-tree-builder" rel="noopener noreferrer"&gt;Segment Tree Builder&lt;/a&gt; — feed in an array, pick sum/min/max/gcd, and watch the tree render, plus grab a full C++ class template.&lt;br&gt;
&lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/sparse-table-builder" rel="noopener noreferrer"&gt;Sparse Table Builder&lt;/a&gt; — visualizes every level of the O(1) RMQ precomputation, with live queries.&lt;br&gt;
&lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/disjoint-set-union" rel="noopener noreferrer"&gt;Union-Find (DSU) Visualizer&lt;/a&gt; — watch path compression and union-by-rank happen live on a forest view.&lt;br&gt;
&lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/grid-path-finder" rel="noopener noreferrer"&gt;Path Finder&lt;/a&gt; — paint walls on a grid and run BFS to see the shortest path animate, then copy the grid as a C++ 2D vector.&lt;br&gt;
&lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/sieve-visualizer" rel="noopener noreferrer"&gt;Sieve Visualizer&lt;/a&gt; — step through the Sieve of Eratosthenes on a color-coded grid.&lt;br&gt;
&lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/sorting-algorithm-visualizer" rel="noopener noreferrer"&gt;Sorting Visualizer&lt;/a&gt; and &lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/binary-search-visualizer" rel="noopener noreferrer"&gt;Binary Search Visualizer&lt;/a&gt; — step-by-step animations with live comparison counts, or lo/hi/mid tracking on your own array.&lt;/p&gt;

&lt;p&gt;These aren't just "nice to look at" — watching the not-found path in binary search, or the moment a submask loop wraps around, is often exactly where off-by-one bugs hide.&lt;/p&gt;

&lt;p&gt;Code generators that skip the boilerplate&lt;/p&gt;

&lt;p&gt;Some things in CP are conceptually simple but easy to typo under time pressure. These tools generate ready-to-paste C++:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/bitmask-planner" rel="noopener noreferrer"&gt;Bitmask Planner&lt;/a&gt; — set N ≤ 12, visualize all 2^N states and submask iteration order, get a DP skeleton.&lt;br&gt;
&lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/pbds-generator" rel="noopener noreferrer"&gt;PBDS Generator&lt;/a&gt; — Order Statistics Tree boilerplate with configurable key type and comparator.&lt;br&gt;
&lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/matrix-rotation" rel="noopener noreferrer"&gt;Matrix Rotation&lt;/a&gt; and &lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/io-matrix-generator" rel="noopener noreferrer"&gt;Matrix Generator&lt;/a&gt; — for grid-based problems and test input generation.&lt;br&gt;
&lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/convex-hull" rel="noopener noreferrer"&gt;Convex Hull&lt;/a&gt; — click points on a canvas, get the hull via Andrew's monotone chain, export as a C++ vector.&lt;br&gt;
Math you don't want to hand-compute&lt;br&gt;
&lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/modular-arithmetic" rel="noopener noreferrer"&gt;Modulo Calculator&lt;/a&gt; — modular inverse, fast power mod, nCr mod p with BigInt precision.&lt;br&gt;
&lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/gcd-lcm-extended" rel="noopener noreferrer"&gt;Extended GCD&lt;/a&gt; — GCD, LCM, Bezout coefficients, full Euclidean trace, BigInt-exact to 10¹⁸.&lt;br&gt;
&lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/combinatorics" rel="noopener noreferrer"&gt;Combinatorics&lt;/a&gt; — nCr, nPr, factorials, Catalan and Stirling numbers with step-by-step working.&lt;br&gt;
&lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/prime-factorizer" rel="noopener noreferrer"&gt;Prime Factorizer&lt;/a&gt; and &lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/mex-calculator" rel="noopener noreferrer"&gt;MEX Calculator&lt;/a&gt; — quick sanity checks mid-contest.&lt;br&gt;
Testing and performance&lt;br&gt;
&lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/stress-tester" rel="noopener noreferrer"&gt;Stress Tester&lt;/a&gt; — paste your brute force, your optimal solution, and a generator; get a downloadable script that hunts for counter-examples.&lt;br&gt;
&lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/offline-judge-test-runner" rel="noopener noreferrer"&gt;Offline Judge / Test Runner&lt;/a&gt; — run JS solutions against custom test cases in a sandboxed worker and get AC/WA/TLE/RE verdicts.&lt;br&gt;
&lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/big-o-analyzer" rel="noopener noreferrer"&gt;Big-O Analyzer&lt;/a&gt; — benchmarks your algorithm across doubling input sizes and predicts whether it'll TLE.&lt;br&gt;
&lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/complexity-calculator" rel="noopener noreferrer"&gt;Complexity Calculator&lt;/a&gt; — a reference table plus estimated runtime for any N, from O(1) to O(N!).&lt;br&gt;
The rest of the toolbox&lt;/p&gt;

&lt;p&gt;Rounding things out: a &lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/code-formatter" rel="noopener noreferrer"&gt;Code Formatter for C++/Java/Python&lt;/a&gt;, a &lt;a href="https://www.utilitytoolslab.com/competitiveprogramming/bit-visualizer" rel="noopener noreferrer"&gt;Bit Visualizer&lt;/a&gt; for flipping bits and seeing popcount/clz/ctz live, an Interval Merger for timeline-style overlap problems, and an animated DP Table Builder covering Fibonacci, LCS, 0-1 Knapsack, Coin Change, and Edit Distance with heatmap coloring.&lt;/p&gt;

&lt;p&gt;There are also a few adjacent tools tagged into the category that are worth knowing about: a &lt;a href="https://www.utilitytoolslab.com/text/text-diff-checker" rel="noopener noreferrer"&gt;Text Diff Checker&lt;/a&gt; (handy for comparing expected vs actual output), a &lt;a href="https://www.utilitytoolslab.com/text/palindrome-checker" rel="noopener noreferrer"&gt;Palindrome Checker&lt;/a&gt;, and a standalone &lt;a href="https://www.utilitytoolslab.com/number-tools/prime-checker" rel="noopener noreferrer"&gt;Prime Checker&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Why this matters&lt;/p&gt;

&lt;p&gt;None of these replace actually understanding the algorithms — but they remove the friction of visualizing what you already know, generating boilerplate you'd otherwise mistype, and verifying your solution before you burn a submission on a TLE or WA. Everything runs client-side in the browser, so there's no setup cost between opening a problem and start debugging.&lt;/p&gt;

&lt;p&gt;Full list: &lt;a href="https://www.utilitytoolslab.com/category/competitiveprogramming" rel="noopener noreferrer"&gt;utilitytoolslab.com/category/competitiveprogramming&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you try one, the Graph Visualizer and Stress Tester are probably the highest-leverage starting points — one saves you from hand-drawing structures, the other saves you from hunting counter-examples by hand.&lt;/p&gt;

&lt;p&gt;Happy grinding. 🏆&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>competativeprogramming</category>
    </item>
  </channel>
</rss>
