USACO Gold 2017 Open - Bovine Genomics

Author: Benjamin Qi

Solution 1

Official Analysis (with hashing)

Solution 2

Sort suffixes.

O(NM2logN)\mathcal{O}(NM^2\log N) solution:

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
using db = double;
using str = string; // yay python!
using pi = pair<int, int>;
using pl = pair<ll, ll>;

O(NM2)\mathcal{O}(NM^2) solution:

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
using db = double;
using str = string; // yay python!
using pi = pair<int, int>;
using pl = pair<ll, ll>;

Solution 3

Probably possible to pass solutions with worse complexities ...

Join the USACO Forum!

Stuck on a problem, or don't understand a module? Join the USACO Forum and get help from other competitive programmers!