自学内容网 自学内容网

牛客周赛68

三途川的摆渡人

很简单,不多说

#include<iostream>
using namespace std;
#define int long long 
const int N=1000010;
int arr[N];
int res=0;
signed main(){
    ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    int n;cin>>n;
    string a;cin>>a;
    for(int i=0;i<a.length();i++){
        if(a[i]=='0')res++;
    }
    cout<<res;
    return 0;
}

魔法之森的蘑菇

二维前缀和,找最大矩形即可

#include<iostream>
using namespace std;
#define int long long 
const int N=1000010;
int arr[1010][1010];
int res=0;
int mx=0;
int res1,res2,res3,res4;
signed main(){
    ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    int n,m;cin>>n>>m;
    char shix;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>shix;
            if(shix=='.')arr[i][j]=1;
            else arr[i][j]=0;
        }
    }

    //二维前缀和
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            arr[i][j]+=arr[i][j-1]+arr[i-1][j]-arr[i-1][j-1];
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            for(int k=i;k<=n;k++){
                for(int l=j;l<=m;l++){
                    //cout<<i<<" "<<j<<" "<<k<<" "<<l<<" ";
                    //cout<<arr[k][l]-arr[k][j-1]-arr[i-1][l]+arr[i-1][j-1]<<" "<<(k-i+1)*(l-j+1)<<endl;
                    if(arr[k][l]-arr[k][j-1]-arr[i-1][l]+arr[i-1][j-1]==(k-i+1)*(l-j+1)){
                        if(mx<arr[k][l]-arr[k][j-1]-arr[i-1][l]+arr[i-1][j-1]){
                            //cout<<"panduan";
                            mx=arr[k][l]-arr[k][j-1]-arr[i-1][l]+arr[i-1][j-1];
                            res1=i,res2=j,res3=k,res4=l;
                            //cout<<mx<<endl;
                        }
                    }
                }
            }
        }
    }
    cout<<res1<<" "<<res2<<" "<<res3<<" "<<res4;
    return 0;
}

迷途之家的大贤者

#include<bits/stdc++.h>
using namespace std;
int main(){
    set<int>A,B,C;
    int n;cin>>n;
    int c;
    for(int i=0;i<n;i++){
        int c;cin>>c;
        A.insert(c);
        C.insert(c);
    }
    for(int i=0;i<n;i++){
        int c;cin>>c;
        B.insert(c);
        C.insert(c);
    }
    cout<<n-min({A.size(),B.size(),C.size()/2});
    return 0;
}

原文地址:https://blog.csdn.net/2302_80729149/article/details/143840383

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!