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