A. 【NOIP2018普及级别模拟】数池塘
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/21f0ad13dc1fa768ea39f565d072eb32.png)
#include<bits/stdc++.h>
using namespace std;
struct node{int x,y;};
int n,m,cnt,d[8][2]={{1,-1},{1,0},{1,1},{0,-1},{0,1},{-1,1},{-1,0},{-1,-1}};
char g[110][110];
void bfs(int x,int y){
g[x][y]='.';
cnt++;
int f,tx,ty;
queue<node> q;
node now;
now.x=x,now.y=y;
q.push(now);
while(!q.empty()){
for(int i=0;i<8;i++){
tx=q.front().x+d[i][0];
ty=q.front().y+d[i][1];
if(tx<1||tx>n||ty<1||ty>m)continue;
if(g[tx][ty]=='W'){
now.x=tx,now.y=ty;
q.push(now);
g[tx][ty]='.';
}
}
q.pop();
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>g[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(g[i][j]=='W')bfs(i,j);
cout<<cnt;
return 0;
}
B. 【NOIP2018普及级别模拟】接苹果
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c1b091cb932d799a0dab89c51cf603a5.png)
#include<bits/stdc++.h>
using namespace std;
int t,w,ans,dp[1001][31],a[1001],x,y;
int main(){
cin>>t>>w;
for (int i=1;i<=t;i++)cin>>a[i];
for (int i=1;i<=t;i++){
dp[i][0]+=dp[i-1][0]+a[i]%2;
for (int j=1;j<=w;j++){
x=j%2+1==a[i]?1:0;
y=max(dp[i-1][j-1],dp[i-1][j]);
dp[i][j]=x+y;
}
}
int u=0;
for(int i=0;i<=w;i++)u=max(dp[t][i],u);
cout<<u;
}
C. 【NOIP2018普及级别模拟】.找数`![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c8adbe39e045a1736c597e8f9357c38d.png)
#include<bits/stdc++.h>
using namespace std;
int n,k,a[3000010];
bool comp(int a,int b){return a>b;}
int main(){
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
sort(a+1,a+n+1,comp);
printf("%d",a[k]);
return 0;
}
D. 【NOIP2018普及级别模拟】最短路线
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/55ca57c1520cb4aba8889323f89c5772.png)
E. 【NOIP2018普及级别模拟】生成树
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b5693a715e83b7bd649c8d7854ab2d70.png)
#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
LL n,k;
LL poww(LL a,LL b){
LL ans=1,base=a;
while(b){
if(b&1)ans=ans*base%k;
base=base*base%k;
b>>=1;
}
return ans;
}
int main(){
cin>>n>>k;
if(n==1)cout<<1;
else if(k==0)cout<<-1;
else if(n==0)cout<<0;
else cout<<poww(n%k,n-2);
return 0;
}