solution

clique $K _ {k + 1}$ がlocally k-denseで辺数が最小のもの。 clique $K _ {k - 1}$ とそれ以外の頂点の間に辺を張って完全2部グラフを作るのが、locally k-denseでなく辺数が最大のもの(たぶん)。 $m$をこれと比較する。 $O(1)$。

証明はまだ分かっていません。

note

  • コメントに微妙に嘘を混ぜたまま提出してしまった
  • 他の人のコードを開いたら自分のと違ってたので落胆してたが、周囲がどんどんhackされていった

implementation

#include <bits/stdc++.h>
#define REP(i, n) for (int i = 0; (i) < int(n); ++ (i))
typedef long long ll;
using namespace std;
class MinDegreeSubgraph { public: string exists(ll n, ll m, ll k); };

const string ALL = "ALL";
const string SOME = "SOME";
const string NONE = "NONE";
ll binom_2(ll n) { return n * (n - 1) / 2; }
string MinDegreeSubgraph::exists(ll n, ll m, ll k) {
    if (k == 0) return ALL;
    if (n < k + 1) return NONE;

    // a clique K_{k + 1}
    bool is_none = binom_2(k + 1) > m;

    // make a graph like complete bipartite one between a clique K_{k - 1} and all other vertices
    bool is_all = binom_2(k - 1) + (k - 1) * (n - k + 1) < m;

    assert (not (is_none and is_all));
    return is_none ? NONE : is_all ? ALL : SOME;
}