其实我读题都懵逼……他给出一个素数p,让你设计一种加和乘的运算使得\[(m+n)^p = m^p+n^p\]
答案是设计成%p意义下的加法和乘法,这样:\[(m+n)^p\ \%\ p = m+n\]\[m^p\ \%\ p=m\]\[n^p\ \%\ p=n\]
所以\[(m+n)^p\ \%\ p=(m^p+n^p)\ \%\ p\]
直接输出就行了。

int T, p;

int main() {
    for (read(T); T; T--) {
        read(p);
        rep(i, 1, p) {
            rep(j, 1, p) {
                printf("%d ", (i + j - 2) % p);
            }
            puts("");   
        }
        rep(i, 1, p) {
            rep(j, 1, p) {
                printf("%lld ", (ll)(i - 1) * (j - 1) % p);
            }
            puts("");
        }
    }
    return 0;
}
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。