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 场周赛完结的主要内容,如果未能解决你的问题,请参考以下文章

Acwing第 31 场周赛完结

Acwing第 36 场周赛完结

Acwing第 56 场周赛完结

Acwing第 32 场周赛完结

Acwing第 59 场周赛完结

Acwing第 35 场周赛完结