Acwing第 23 场周赛完结
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Acwing第 23 场周赛完结相关的知识,希望对你有一定的参考价值。
4003. 完全平方数【签到】
https://www.acwing.com/problem/content/4006/
#include<bits/stdc++.h>
using namespace std;
int n;
int main(void)
{
cin>>n;
int ans=-1e9;
while(n--)
{
int x; cin>>x;
int temp=sqrt(x);
if(temp*temp!=x) ans=max(ans,x);
}
cout<<ans<<endl;
return 0;
}
4004. 传送阵【floodfill 暴力】
https://www.acwing.com/problem/content/4007/
暴力求连通块的所有的点,然后暴力枚举取一个min
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
const int N=1e2+10;
int n,x,y,xx,yy;
string s[N];
int dx[4]={-1,0,0,1};
int dy[4]={0,-1,1,0};
int st[N][N]={0};
vector<PII>A,B;
vector<PII> bfs(int x,int y)
{
vector<PII>C;
queue<PII>q; q.push({x,y}); st[x][y]=1;
while(q.size())
{
auto t=q.front(); q.pop();
int x=t.first,y=t.second;
C.push_back({x,y});
for(int i=0;i<4;i++)
{
int tempx=x+dx[i];
int tempy=y+dy[i];
if(tempx<0||tempx>=n||tempy<0||tempy>=n) continue;
if(s[tempx][tempy]=='1') continue;
if(st[tempx][tempy]) continue;
q.push({tempx,tempy});
st[tempx][tempy]=1;
}
}
return C;
}
int main(void)
{
cin>>n>>x>>y>>xx>>yy;
for(int i=0;i<n;i++) cin>>s[i];
A=bfs(x-1,y-1);
B=bfs(xx-1,yy-1);
int ans=1e9;
for(int i=0;i<A.size();i++)
for(int j=0;j<B.size();j++)
{
int a=A[i].first,b=A[i].second;
int c=B[j].first,d=B[j].second;
ans=min(ans,(a-c)*(a-c)+(b-d)*(b-d));
}
cout<<ans;
return 0;
}
4005. 取石子游戏【博弈论】
https://www.acwing.com/problem/content/4008/
#include<bits/stdc++.h>
using namespace std;
int main(void)
{
int t; cin>>t;
while(t--)
{
int n,k; cin>>n>>k;
if(k%3)
{
if(n%3) puts("Alice");
else puts("Bob");
}
else
{
n=n%(k+1);
if(n==k || n%3 ) puts("Alice");
else puts("Bob");
}
}
return 0;
}
以上是关于Acwing第 23 场周赛完结的主要内容,如果未能解决你的问题,请参考以下文章