ACGO欢乐赛#40题解
2025-02-11 07:17:29
发布于:黑龙江
1.A37947.闰年
作为全场最难的题, 直接输出2028即可。
#include <bits/stdc++.h>
//#include <windows.h>
//#include <conio.h>
using namespace std;
typedef long long ll;
const int maxn=2e6+5;
int a[maxn];
int main(){
cout<<2028;
return 0;
}
2.A37948.114514的次方(1)
通过列表格可得,若是奇数答案就是4,偶数就是6,无其他可能。
#include <bits/stdc++.h>
//#include <windows.h>
//#include <conio.h>
using namespace std;
typedef long long ll;
const int maxn=2e6+5;
int a[maxn];
int main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;
if(n%2)cout<<4<<endl;
else cout<<6<<endl;
}
return 0;
}
3.A37949.114514的次方(2)
这题也是简单的一批,记得long long,每算完一次就模一次就行。
#include <bits/stdc++.h>
//#include <windows.h>
//#include <conio.h>
using namespace std;
typedef long long ll;
const int maxn=2e6+5;
int a[maxn];
int main(){
ios::sync_with_stdio(0);
cin.tie();
cout.tie();
int n;
cin>>n;
ll ans=1;
while(n--){
ans*=114514;
ans%=998244353;
}
cout<<ans;
return 0;
}
4.A37950.求第n个质数
直接经典模板“判定质数”。
#include <bits/stdc++.h>
//#include <windows.h>
//#include <conio.h>
using namespace std;
typedef long long ll;
const int maxn=2e6+5;
int a[maxn];
int main(){
int cnt=0;
int n;
cin>>n;
int pr=2;
while(cnt<n){
bool f=1;
for(int i=2;i*i<=pr;i++){
if(pr%i==0)f=0;
}
if(f){
cnt++;
}
pr++;
}
cout<<pr-1;//因为while循环末尾pr会++,所以要-1。
return 0;
}
5.A37951.座位问题
通过列表格(经典技能)可得,答案为“不快乐”的学生数量(上取整)。
#include <bits/stdc++.h>
//#include <windows.h>
//#include <conio.h>
using namespace std;
typedef long long ll;
const int maxn=2e6+5;
int a[maxn];
void solve(){
int n;
cin>>n;
int cnt=1;
for(int i=1;i<=n;i++){
int x;
cin>>x;
if(x==i)cnt++;
}
cout<<cnt/2<<endl;
}
int main(){
ios::sync_with_stdio(0);
cin.tie();
cout.tie();
int t;
cin>>t;
while(t--)solve();
return 0;
}
6.A37952.最长因子区间
找几组数据一看,我们会发现区间的一定为1,那我们就可以快乐地枚举了~
枚举之前,先看一下最坏情况:那最大是多少呢?通过使用计算器发现, 当时,就已经等于了,可以放心食用枚举了。
#include <bits/stdc++.h>
//#include <windows.h>
//#include <conio.h>
using namespace std;
typedef long long ll;
const int maxn=2e6+5;
int a[maxn];
void solve(){
ll n;
cin>>n;
int cnt=0;
for(int i=1;n%i==0;i++)cnt++;
cout<<cnt<<endl;
}
int main(){
ios::sync_with_stdio(0);
cin.tie();
cout.tie();
int t;
cin>>t;
while(t--)solve();
return 0;
}
全剧终,感谢各位收看!
这里空空如也
有帮助,赞一个