欢乐赛#40题解
2025-02-10 14:49:47
发布于:江西
T1
显然,下一个闰年为2028年
# include <bits/stdc++.h>
using namespace std ;
int main ( )
{
cout<<2028;
return 0 ;
}
时间复杂度:
T2
求114514的幂相当于求4的幂
观察,发现4-->6-->4......
我们可以n%=2,再n+=2
# include <bits/stdc++.h>
using namespace std ;
int main ( )
{
int T;
cin>>T;
while(T--){
int n;
cin>>n;
n%=2;
cout<<int(pow(4,n+2))%10<<endl;
}
return 0 ;
}
时间复杂度:
T3
因为
所以太大,unsigned long long也存不下
就需要乘的时候模一下
# include <bits/stdc++.h>
using namespace std ;
const int m=998244353;
long long t=1;
int main ( )
{
int n;
cin>>n;
for(int i=0;i<n;i++){
t*=114514;
t%=m;
}
cout<<t;
return 0 ;
}
时间复杂度:
T4
思路:遍历每个质数,存到数组里,输出即可
# include <bits/stdc++.h>
using namespace std ;
bool p(int n){
for(int i=2;i<=sqrt(n);i++){
if(n%i==0) return 0;
}
return 1;
}
int a[10000000];
int main ( )
{
int n,ct=0,dex=0;
cin>>n;
int k=(n+10);
for(int i=2;i<k*k;i++){
if(p(i)){
a[dex]=i;
dex++;
}
}
cout<<a[n-1];
return 0 ;
}
时间复杂度·:
T5
先用ct统计“不快乐”的人数,每一次交换最多2个,用ceil就可以解决
# include <bits/stdc++.h>
using namespace std ;
int a[1000];
int main ( )
{
int T;
cin >> T;
while ( T --) {
int n,ct=0;
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
for(int i=0;i<n;i++){
if(a[i]==i+1) ct++;
}
cout<<ceil(ct/2.0)<<endl;
}
return 0 ;
}
时间复杂度:
T6
如果是形式的数,一定没有二的因子
如果是形式的数,一定没有三的因子
如果是形式的数,一定没有四的因子
......
找到规律,这题就很简单
# include <bits/stdc++.h>
using namespace std ;
int main ( )
{
int T;
cin >> T;
while ( T --) {
long long n,ans=0,maxi=0;
cin>>n;
if(n%2>0) cout<<1;
else if(n%3>0) cout<<2;
else{
for(long long k=2;k<n;k++){
if(n%k>0){
cout<<k-1;
break;
}
}
}
cout<<endl;
}
return 0 ;
}
时间复杂度:
我绝对不会告诉你们T2我提交了好几次
全部评论 4
咱就是说能不能别用浮点数了
2025-02-10 来自 广东
0数据一大浮点数全是问题
2025-02-10 来自 广东
0ok
2025-02-10 来自 江西
0
2025-02-10 来自 江西
0建议T5时间复杂度使用markdown。
T6:约等于2025-02-10 来自 广东
0
2025-02-10 来自 江西
02025-02-10 来自 江西
0
有帮助,赞一个