test

公式测试
\(\begin{array}{l} 考虑问题\sum\limits ^{n}_{i=1}\sum\limits ^{m}_{j=1} [gcd(i,j)=p]\ \ \ ( n,m\leqslant 1e7)\\ \\ \Leftrightarrow \sum\limits _{p}\sum\nolimits ^{\lfloor \frac{min( m,n)}{p} \rfloor }_{d=1} \mu ( g) \lfloor \frac{n}{pd} \rfloor \lfloor \frac{m}{pd} \rfloor \\ \\ \\ \Leftrightarrow \sum ^{min( n,m)}_{i=1} \lfloor \frac{n}{i} \rfloor \lfloor \frac{m}{i} \rfloor \sum\limits _{p|i} \mu \left(\frac{i}{p}\right)\\ \\ \\ 以上是推到的关键步骤,\\ \\ 以下是细节推导。\\ \\ \\ ( 1)\rightarrow ( 2) :firstly\ 对每个p分别计算其对答案贡献:\\ \\ ( 1) \Leftrightarrow \sum\limits _{p}\sum\limits ^{\lfloor \frac{n}{p} \rfloor }_{i=1}\sum\limits ^{\lfloor \frac{m}{p} \rfloor }_{j=1} [gcd(i,j)=1]\ \ \\ \\ \\ secondly\ 为了得到( 2) ,较简单的方法是使用mobius\ inv的引理\\ \\ \mu *I=e\ \\ \\ ( \ *是迪利克雷卷积\ I( n) =n\ ,\ e( n) =[ n=1] \ )\\ \\ 即\sum _{d|n} \mu ( d) =[ n=1]\\ \\ \\ (\ \ \ \ ( 6) 的证明:将n分解,n=p_{1}^{a_{1}} p_{2}^{a_{2}} ...p_{k}^{a_{k}} ,\\ 所有\mu 不为0,且有i个质因子的数的贡献可以表示为C( k,i) \times ( -1)^{i} ,\\ 而\forall n >1:\sum ^{k}_{i=1} C( k,i) \times ( -1)^{i} =0\ \ \ \ )\\ \\ \therefore \sum _{d|gcd( i,j)} \mu ( d) =[ gcd( i,j) =1]\\ \\ \therefore ( 4) \Leftrightarrow \sum\limits _{p}\sum\limits ^{\lfloor \frac{n}{p} \rfloor }_{i=1}\sum\limits ^{\lfloor \frac{m}{p} \rfloor }_{j=1}\sum _{d|gcd( i,j)} \mu ( d)\\ \\ Thirdly\ 我们比较( 2) 和( 7) 发现\sum\limits ^{\lfloor \frac{n}{p} \rfloor }_{i=1}\sum\limits ^{\lfloor \frac{m}{p} \rfloor }_{j=1}\sum _{d|gcd( i,j)} 变成了\sum\nolimits ^{\lfloor \frac{min( m,n)}{p} \rfloor }_{d=1} \lfloor \frac{n}{pd} \rfloor \lfloor \frac{m}{pd} \rfloor \\ \\ 可以这么理解,我们枚举d,计算\mu ( d) 的个数,\\ \\ \left( \ d的取值范围是1\sim \lfloor \frac{min( m,n)}{p} \rfloor \ \right)\\ \\ \because d|gcd( i,j) \ \therefore i,j是d的倍数时才对结果有贡献,\\ \\ \therefore \mu ( d) 有\lfloor \frac{n}{pd} \rfloor \lfloor \frac{m}{pd} \rfloor 个。\\ \\ \\ \\ \therefore \sum\limits ^{n}_{i=1}\sum\limits ^{m}_{j=1} [gcd(i,j)=p]\Leftrightarrow \sum\limits _{p}\sum\limits ^{\lfloor \frac{n}{p} \rfloor }_{i=1}\sum\limits ^{\lfloor \frac{m}{p} \rfloor }_{j=1}\sum _{d|gcd( i,j)} \mu ( d) \Leftrightarrow \sum\limits _{p}\sum\nolimits ^{\lfloor \frac{min( m,n)}{p} \rfloor }_{d=1} \mu ( g) \lfloor \frac{n}{pd} \rfloor \lfloor \frac{m}{pd} \rfloor \\ \\ \\ \\ \\ \\ \\ \end{array}\)

\[a_i /neq i \]

\[\frac{a}{b} +\sqrt[3]{a+b} +\int ^{a}_{b} dx+\overbrace{a-b}^{n+1} +\wideparen{ABC} +\widehat{ABC} +\Uparrow H_{2} 0\Uparrow \]

ideone 测试:

公式测试:

\[\sum_{i=1}^n \frac{1}{i^2} \quad and \quad \prod_{i=1}^n \frac{1}{i^2} \quad and \quad \bigcup_{i=1}^{2} R \]

代码段测试

#include <bits/stdc++.h>
using namespace std;

bool isPalindrome(const string& s) {
    for(int i = 0; i < s.length(); ++i) {
        if (s[i] != s[s.length() - i - 1]) 
            return false;
    }
    return true;
}

bool solve1(string s) {
    string t = s;
    for(int i = 0; i < s.length(); ++i) {
        t = t.back() + t;
        t.pop_back();
        if (s != t && isPalindrome(t)) {
            return true;
        }
    }
    return false;
}

bool anyAnswer(const string& s) {
    int nt = 0;
    for(int i = 0; i < s.length(); ++i) {
        nt += s[i] != s[0];
    }
    return nt > 1;
}

int32_t main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr), cout.tie(nullptr);

    string s;
    cin >> s;
    if (anyAnswer(s)) {
        cout << (solve1(s) ? 1 : 2) << endl;
    } else {
        cout << "Impossible" << endl;
    }

    return 0;
}

posted @ 2019-02-25 19:21  SuuTTT  阅读(121)  评论(0编辑  收藏  举报