2025 年蓝桥杯省赛 A 整理
1. 寻找质数
寻找质数 本题较为简单,我们直接枚举得到第 2025 个质数即可。
//直接使用质数判定的模板即可
#include<iostream>
#include<cstdio>
using namespace std;
bool check(int x){
for(int i=2;i*i<=x;i++){
if(x%i==0) return false;
}
return true;
}
int idx=1;
int main(){
for(int i=3;i<=10000000;i++){
if(check(i)) idx++;
if(idx==2025){ cout<<i<<endl; return 0; }
}
return 0;
}
2. 黑白棋
该题目可以通过逻辑推理零代码解决。且求解过程更加简洁。 下面我们考虑使用搜索的方法解决该题。 考虑到最终棋盘上黑棋的个数是确定的,那么我们可以将所有待填的位置打表记录。然后依次 dfs 搜索,对于每个完成搜索的棋盘,我们建立一个 check() 函数检查其是否符合要求。
#include<iostream>
#
std;
vs[][];
vt[][];
g[][];
choose[][]={{,},{,},{,},{,},{,},{,},{,},{,},{,},{,},{,},{,},{,},{,},{,},{,},{,},{,},{,},{,},{,},{,},{,},{,}};
ans=;
{
( i=;i<=;i++){
( j=;j<=;j++){
(g[i][j]==g[i][j]&&g[i][j]==g[i][j]) ;
}
}
( i=;i<=;i++){
( j=;j<=;j++)
(g[i][j]==g[i][j]&&g[i][j]==g[i][j]) ;
}
( i=;i<=;i++){
( j=i;j<=;j++){
( k=;k<=;k++){
(g[i][k]!=g[j][k]) ;
(k==&&g[i][k]==g[j][k]) ;
}
}
}
( i=;i<=;i++){
( j=i;j<=;j++){
( k=;k<=;k++){
(g[k][i]!=g[k][j]) ;
(k==&&g[k][i]==g[k][j]) ;
}
}
}
( i=;i<=;i++){
sumi=;
sumj=;
( j=;j<=;j++){ sumi+=g[i][j]; sumj+=g[j][i]; }
(sumi!=) ;
(sumj!=) ;
}
;
}
{
(idx>=) ;
(idx <&&place >=){ ; }
g[choose[place][]][choose[place][]]=;
(idx>=){
(()){
ans++;
( i=;i<=;i++){
( j=;j<=;j++) cout<<g[i][j]<<; cout<<endl;
}
cout<<endl<<endl<<endl; cout<<;
( i=;i<=;i++){
( j=;j<=;j++){ cout<<g[i][j]; }
}
cout<<endl;
}
}
( j=place ;j<=;j++){
(idx,j);
g[choose[j][]][choose[j][]]=;
}
}
{
( i=;i<=;i++){
( j=;j<=;j++){ g[i][j]=; } cout<<endl;
}
(vs,, vs);
g[][]=,g[][]=,g[][]=,g[][]=;
vs[][]=vs[][]=vs[][]=vs[][]=;
vt[][]=vt[][]=vt[][]=vt[][]=;
g[][]=; vs[][]=; vt[][]=;
g[][]=,g[][]=,g[][]=;
vs[][]=vs[][]=vs[][]=;
vt[][]=vt[][]=vt[][]=;
g[][]=,g[][]=;
vs[][]=vs[][]=;
vt[][]=vt[][]=;
g[][]=,g[][]=;
vs[][]=vs[][]=;
vt[][]=vt[][]=;
( i=;i<=;i++){
( j=;j<=;j++){ cout<<g[i][j]<<; }
cout<<endl; cout<<endl;
}
( i=;i<=;i++){(,i);}
cout<<<<ans<<endl;
;
}


