• 【思维】cf 1365 DEF


    这套题简单得匪夷所思。。def都是分析下性质就出来了。。

    d:把B周围四个点标记一下,然后跑一次联通块就行

    #include<bits/stdc++.h>
    using namespace std;
    #define N 55
     
    int X,Y,n,m,f[N][N],v[N][N];
    char mp[N][N];
     
    void dfs(int x,int y){
        if(v[x][y] || f[x][y] || x==0 || y==0 || x==n+1 || y==m+1)return;
        v[x][y]=1;
        dfs(x+1,y);
        dfs(x-1,y);
        dfs(x,y-1);
        dfs(x,y+1);
    }
     
    int main(){
        int t;cin>>t;
        while(t--){
            cin>>n>>m;
            memset(f,0,sizeof f);
            memset(v,0,sizeof v);
            for(int i=1;i<=n;i++)scanf("%s",mp[i]+1);
            int cnt=0;
            for(int i=1;i<=n;i++)
                for(int j=1;j<=m;j++){
                    if(mp[i][j]=='B')
                        f[i][j]=f[i-1][j]=f[i+1][j]=f[i][j-1]=f[i][j+1]=1;
                    if(mp[i][j]=='#')f[i][j]=1;
                    if(mp[i][j]=='G')cnt++;
                }
            X=n,Y=m;
            if(f[X][Y]){
                if(cnt)puts("NO");
                else puts("YES");
                continue;
            }
            dfs(X,Y);
            int flag=0;
            for(int i=1;i<=n;i++)
                for(int j=1;j<=m;j++)
                    if(mp[i][j]=='G' && v[i][j]==0)flag=1;
            if(!flag)puts("YES");
            else puts("NO");
        }
    }

    E:k最大=3

    #include<bits/stdc++.h>
    using namespace std;
    #define N 505
    #define ll long long 
     
    ll n,a[N];
     
    int main(){
        cin>>n;
        for(int i=1;i<=n;i++)cin>>a[i];
        ll ans=0;
        for(int i=1;i<=n;i++)ans=max(ans,a[i]);
        for(int i=1;i<=n;i++)
            for(int j=i+1;j<=n;j++)
                ans=max(ans,a[i]|a[j]);
        for(int i=1;i<=n;i++)
            for(int j=i+1;j<=n;j++)
                for(int k=j+1;k<=n;k++)
                    ans=max(ans,a[i]|a[j]|a[k]);
        cout<<ans<<'
    ';
    } 

    F:每次操作只能同时修改a[i]和a[n-i+1]的位置,看a[]和b[]里对应的数对是不是一样的即可

    #include<bits/stdc++.h>
    using namespace std;
    #define N 505
     
    map<int,multiset<int> >mp1,mp2;
    int n,a[N],b[N];
     
     
    int main(){
        int t;cin>>t;
        while(t--){
            scanf("%d",&n);
            mp1.clear();mp2.clear();
            for(int i=1;i<=n;i++)scanf("%d",&a[i]);
            for(int i=1;i<=n;i++)scanf("%d",&b[i]);
            for(int i=1;i<=n;i++){
                mp1[a[i]].insert(a[n-i+1]);
                mp2[b[i]].insert(b[n-i+1]);
            }
            int f=0;
            for(auto p:mp1){
                int x=p.first;
                auto s=p.second;
                if(mp2[x]!=s)f=1;
            }
            if(f)cout<<"No"<<'
    ';
            else cout<<"Yes"<<'
    ';
        }
    }
  • 相关阅读:
    Nginx 413 Request Entity Too Large
    Docker 搭建一个多端同步网盘-Nextcloud
    FTP主动模式(PORT)与被动模式(PASV)
    Linux安装与使用FTP服务-vsftpd
    Mac FTP工具推荐-Transmit
    Nginx配置动静分离
    Nginx解决跨域问题(CORS)
    CentOS 7 之找回失落的ifconfig
    CentOS 7 之安装篇
    深入研究MiniMVC之后续篇
  • 原文地址:https://www.cnblogs.com/zsben991126/p/13087068.html
Copyright © 2020-2023  润新知