[2018 CCPC 网络赛] 部分题解 (待补充)

Posted lorelei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[2018 CCPC 网络赛] 部分题解 (待补充)相关的知识,希望对你有一定的参考价值。

 

真香爬山预警

 

1003 - Dream

题目链接

如题,p是一个质数,那么由费马小定理  a^p ≡ a (mod p)  ( a ∈ Z )  可得

只需将

加法定义为 (m + n) % p

乘法定义为 (m * n) % p

即可

 

技术分享图片 
 1 #include <iostream>
 2 #include <bits/stdc++.h>
 3 using namespace std;
 4 int main()
 5 {
 6     int t,p;
 7     scanf("%d",&t);
 8     while(t--)
 9     {
10         scanf("%d",&p);
11         for(int i=0; i<p; i++)
12         {
13             for(int j=0; j<p; j++)
14             {
15                 if(j) printf(" ");
16                 printf("%d",(i+j)%p);
17             }
18             puts("");
19         }
20         for(int i=0; i<p; i++)
21         {
22             for(int j=0; j<p; j++)
23             {
24                 if(j) printf(" ");
25                 printf("%d",(i*j)%p);
26             }
27             puts("");
28         }
29     }
30     return 0;
31 }
1003 code

 


 

1004 - Find Integer

题目链接

由费马大定理可知 n>2 时无解,显然n=0时也无解。

当n=2时利用费马大定理奇偶数列法则求解即可

 奇偶数列法则:

  若a为奇数
  a = 2n + 1 
  c = n ^ 2 + (n + 1) ^ 2 
  b = c - 1

  若a为偶数,
  则 a = 2n + 2 
  c = 1 + (n + 1) ^ 2 
  b = c - 2

 

技术分享图片 
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 int main()
 5 {
 6     int n;
 7     ll a;
 8     scanf("%d %lld",&n,&a);
 9     if (n==0 || n>2) printf("-1
");
10     else if(n==1) printf("1 %lld
",a+1);
11     else
12     {
13         ll n,c,b;
14         if(a%2==0)
15         {
16             n=(a-2)/2;
17             c=1+(n+1)*(n+1);
18             b=c-2;
19         }
20         else
21         {
22             n=(a-1)/2;
23             c=n*n+(n+1)*(n+1);
24             b=c-1;
25         }
26         printf("%lld %lld
",b,c);
27     }
28     return 0;
29 }
1004 code

 







以上是关于[2018 CCPC 网络赛] 部分题解 (待补充)的主要内容,如果未能解决你的问题,请参考以下文章

2018 CCPC网络赛 几道数学题

HDU 6438 Buy and Resell ( 2018 CCPC 网络赛 && 贪心 )

2021CCPC网络赛重赛-题解

2021CCPC网络赛重赛-题解

2018 CCPC网络赛

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