2015-10-27から1日間の記事一覧

ACPC2015Day3 F / AOJ 2763 - Miko Mi String

問題はこちら。入力文字列Sについて、長さをn、最小周期をpとします。 さらに、q=p*floor(n/(3*p)+1)とおきます。 このようにすると、 2*q<nであるときかつそのときに限り、題意を満たす文字列A,Bが存在し、さらに求めるべきABの長さはqとなる ということが容易に証明できます。以上の考察を基にコードを書くと次のようになります。 #include <stdio.h> #include <string.h> char s[1000010]; int mp[1000010]; int main(){ int i, n, t, p, q = 0; fgets(s, sizeof(s)…</string.h></nであるときかつそのときに限り、題意を満たす文字列a,bが存在し、さらに求めるべきabの長さはqとなる>