HDU6440 Dream(费马小定理+构造) -2018CCPC网络赛1003

题意:

给定素数p,定义p内封闭的加法和乘法,使得$(m+n)^p=m^p+n^p$

思路:

由费马小定理,p是素数,$a^{p-1}\equiv 1(mod\;p)$

所以$(m+n)^{p}\equiv (m+n)(mod\;p)$

$m^{p}\equiv m(mod\;p)$

$n^{p}\equiv n(mod\;p)$

所以在模意义下,有$(m+n)^p=m^p+n^p$

代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<string>
#include<stack>
#include<queue>
#include<deque>
#include<set>
#include<vector>
#include<map>
#include<functional>

#define fst first
#define sc second
#define pb push_back
#define mem(a,b) memset(a,b,sizeof(a))
#define lson l,mid,root<<1
#define rson mid+1,r,root<<1|1
#define lc root<<1
#define rc root<<1|1
#define lowbit(x) ((x)&(-x)) 

using namespace std;

typedef double db;
typedef long double ldb;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> PI;
typedef pair<ll,ll> PLL;

const db eps = 1e-6;
const int mod = 1e9+7;
const int maxn = 2e5+2;
const int maxm = 2e6+100;
const int inf = 0x3f3f3f3f;
const db pi = acos(-1.0);

int main() {
    int T;
    scanf("%d", &T);
    while(T--){
        ll n;
        scanf("%I64d", &n);
            for(ll i = 0; i < n; i++){
                for(ll j = 0; j < n; j++){
                    printf("%I64d ", (ll)(i+j)%n);
                }
                printf("\n");
            }
            for(ll i = 0; i < n; i++){
                for(ll j = 0; j < n; j++){

                    printf("%I64d ", (ll)i*j%n);
                }
                printf("\n");
            }

    }
    return 0;
}

原文地址:https://www.cnblogs.com/wrjlinkkkkkk/p/9538508.html

时间: 2024-11-05 17:32:16

HDU6440 Dream(费马小定理+构造) -2018CCPC网络赛1003的相关文章

hdu6440 Dream 2018CCPC网络赛C 费马小定理+构造

题目传送门 题目大意: 给定一个素数p,让你重载加法运算和乘法运算,使(m+n)p=mp+np,并且 存在一个小于p的q,使集合{qk|0<k<p,k∈Z} 等于集合{k|0<k<p,k∈Z}. 然后输出两个矩阵,第一个矩阵输出i+j的值,第二个矩阵输出i*j的值.(题意好难懂,你们怎么都看懂了!!) 思路: 由费马小定理得到,当p是质数的时候,ap-1 ≡ 1(mod p),两边同乘以a,也就是说当ap和a在取模p的时候相等 所以(m+n)p=m+n=mp+np(乘法为x*x%p

题解报告:hdu 6440 Dream(费马小定理+构造)

解题思路:给定素数p,定义p内封闭的加法和乘法运算(运算封闭的定义:若从某个非空数集中任选两个元素(同一元素可重复选出),选出的这两个元素通过某种(或几种)运算后的得数仍是该数集中的元素,那么,就说该集合对于这种(或几种)运算是封闭的.),使得等式恒成立. 由费马小定理可得,∴,则. ∴在模p的意义下,恒成立,且加法运算与乘法运算封闭. 即乘法运算满足. AC代码: 1 #include<bits/stdc++.h> 2 using namespace std; 3 int t,p; 4 in

HDU6440(费马小定理)

其实我读题都懵逼--他给出一个素数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) {

HDU6440 Dream 2018CCPC网络赛-费马小定理

目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog Problem:Portal传送门 ?原题目描述在最下面. ?给定一个素数p,要求定义一个加法运算表和乘法运算表,使的\((m+n)^p=m^p+n^p(0≤m, n<p)\)成立. Solution: ?费马小定理:\(a^{p-1} = 1 mod p(p是素数)\) ?所以 \(a^p \;mod\; p = a^{p-1} \times a \;mod \;p = a

2018 CCPC网络赛 Dream (费马小定理)

Dream Problem Description Freshmen frequently make an error in computing the power of a sum of real numbers, which usually origins from an incorrect equation (m+n)p=mp+np, where m,n,p are real numbers. Let's call it ``Beginner's Dream''. For instance

费马小定理,欧拉函数

在证明这些定理之前先证明一个有意思的定理. 对于0 mod m,n mod m , 2n mod m, 3n mod m, 4n mod m... (m-1)n mod m 对应解集序列 一定有 m/d份 0 d 2d 3d..m-d. (不一定按照顺序) 这样的解. 其中d = gcd(n,m) 具体点:n=8,m=12.  d = gcd(n,m)=4 对于 0 mod 12,8 mod 12,16 mod 12,24 mod 12,32 mod 12,40 mod 12...88 mod

[HDOJ5667]Sequence(矩阵快速幂,费马小定理)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5667 费马小定理: 假如p是质数,且gcd(a,p)=1,那么 a^(p-1)≡1(mod p). 即:假如a是整数,p是质数,且a,p互质(即两者只有一个公约数1),那么a的(p-1)次方除以p的余数恒等于1. 注意这里使用快速幂的时候要根据费马小定理对p-1取模.还有注意a%p=0的情况. 递推式:f(n)=f(n-1)*c+f(n-2)+1 非齐次. 构造矩阵: |c 1 1| |1 0 0|

HDU 4549 (费马小定理+矩阵快速幂+二分快速幂)

M斐波那契数列 Time Limit: 1000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u Submit Status Description M斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = a F[1] = b F[n] = F[n-1] * F[n-2] ( n > 1 ) 现在给出a, b, n,你能求出F[n]的值吗? Input 输入包含多组测试数据: 每组数据占一行,包含3个整数a,

费马小定理是数论的基础理论之一

费马小定理 关于费马小定理,读到注解的时候,还是有点震撼的. 皮埃尔•得•费马(1601-1665)是现代数论的奠基人,他得出了许多有关数论的重要理论结果,但他通常只是通告这些结果,而没有提供证明.费马小定理是在1640年他所写的一封信里提到的,公开发表的第一个证明由欧拉在1736年给出(更早一些,同样的证明也出现在莱布尼茨的未发表的手稿中)费马的最著名结果——称为费马的最后定理——是l637年草草写在他所读的书籍<算术>里(3世纪希腊数学家丢番图所著),还带有一句注释“我已经发现了一个极其美