Acwing第 45 场周赛完结

Posted 辉小歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Acwing第 45 场周赛完结相关的知识,希望对你有一定的参考价值。

https://www.acwing.com/activity/content/competition/problem_list/1287/
最近开始补acwing周赛题目,鸽了好久了。最近acw分数一直再掉,感觉自己越来越烂了。

目录

4393. 字符串价值【签到】

#include<bits/stdc++.h>
using namespace std;
int a[15];
int main(void)

    for(int i=0;i<4;i++) cin>>a[i];
    string s; cin>>s;
    int sum=0;
    for(int i=0;i<s.size();i++) sum+=a[s[i]-'0'-1];
    cout<<sum;
	return 0;

4394. 最长连续子序列【双指针】

#include<bits/stdc++.h>
using namespace std;
const int N=1e5*5+10;
int n,m,a[N],st[N*10];
int l,r,ans;
int main(void)

    cin>>n>>m;
    for(int i=0;i<n;i++) cin>>a[i];
    int cnt=0;
    for(int i=0,j=0;i<n;i++)
    
        st[a[i]]++;
        if(st[a[i]]==1) cnt++;
        while(cnt>m)
        
            if(--st[a[j]]==0) cnt--;
            j++;
        
        int len=i-j+1;
        if(len>ans) ans=len,l=j,r=i;
    
    cout<<l+1<<" "<<r+1<<endl;
    return 0;

4395. 最大子矩阵【思维】


上图出自:https://www.acwing.com/solution/content/107506/
就是将其转换成线段的乘积。

#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
const int N=2020;
LL a[N],b[N],s1[N],s2[N],len1[N],len2[N],n,m;
int main(void)

    cin>>n>>m;
    for(int i=1;i<=n;i++) cin>>a[i],s1[i]=s1[i-1]+a[i];
    for(int i=1;i<=m;i++) cin>>b[i],s2[i]=s2[i-1]+b[i];
    int x; cin>>x;
    for(int i=1;i<=n;i++)//枚举长度
    
        len1[i]=1e9;
        for(int j=1;j+i-1<=n;j++)
        
            int l=j,r=j+i-1;
            len1[i]=min(len1[i],s1[r]-s1[l-1]);
        
    
    for(int i=1;i<=m;i++)
    
        len2[i]=1e9;
        for(int j=1;j+i-1<=m;j++)
        
            int l=j,r=j+i-1;
            len2[i]=min(len2[i],s2[r]-s2[l-1]);
        
    
    int ans=0;
    for(int i=1;i<=n;i++)//双指针/二分也行 这里直接二层的for暴力
        for(int j=1;j<=m;j++)
            if(len1[i]*len2[j]<=x) ans=max(ans,i*j);
    cout<<ans;
    return 0;

以上是关于Acwing第 45 场周赛完结的主要内容,如果未能解决你的问题,请参考以下文章

Acwing第 17 场周赛完结

Acwing第 53 场周赛完结

Acwing第 31 场周赛完结

Acwing第 36 场周赛完结

Acwing第 56 场周赛完结

Acwing第 32 场周赛完结