Acwing第 35 场周赛完结
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Acwing第 35 场周赛完结相关的知识,希望对你有一定的参考价值。
目录
4212. 字符串比较
https://www.acwing.com/problem/content/4215/
#include<bits/stdc++.h>
using namespace std;
int main(void)
string a,b; cin>>a>>b;
for(int i=0;i<a.size();i++) a[i]=tolower(a[i]);
for(int i=0;i<b.size();i++) b[i]=tolower(b[i]);
if(a>b) puts("1");
else if(a==b) puts("0");
else puts("-1");
return 0;
4213. 最小结果【枚举】
https://www.acwing.com/problem/content/4216/
#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
const int N=1e5*2+10;
const int mod=1e9+7;
int n,m,t;
LL a[N];
char op[N];
LL get(LL s1,LL s2,char c)
if(c=='+') return s1+s2;
else return s1*s2;
int main(void)
for(int i=0;i<4;i++) cin>>a[i];
for(int i=0;i<3;i++) cin>>op[i];
LL ans=1e18;
for(int i=0;i<4;i++)
for(int j=i+1;j<4;j++)
vector<LL>ve;
for(int z=0;z<4;z++)
if(z!=i&&z!=j) ve.push_back(a[z]);
ve.push_back(get(a[i],a[j],op[0]));
for(int k1=0;k1<ve.size();k1++)
vector<LL>temp;
for(int k2=k1+1;k2<ve.size();k2++)
for(int z=0;z<ve.size();z++)
if(z!=k1&&z!=k2) temp.push_back(ve[z]);
temp.push_back(get(ve[k1],ve[k2],op[1]));
ans=min(ans,get(temp[0],temp[1],op[2]));
cout<<ans;
4214. 三元组【思维】
https://www.acwing.com/problem/content/4217/
很容易想到三维for,这显然是不行的。我们需要减一维for。
故需要预处理结果来减一维。
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
typedef long long int LL;
LL s[N],c[N],st[N],n;//st[i]存的是比s[i]大的最小的c[i]
int main(void)
cin>>n;
memset(st,-1,sizeof st);
for(int i=0;i<n;i++) cin>>s[i];
for(int i=0;i<n;i++) cin>>c[i];
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
if(s[i]<s[j]&&(st[i]==-1||st[i]>c[j])) st[i]=c[j];
LL ans=1e12;
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
if(s[i]<s[j]&&st[j]!=-1) ans=min(ans,c[i]+c[j]+st[j]);
if(ans!=1e12) cout<<ans;
else cout<<-1;
return 0;
以上是关于Acwing第 35 场周赛完结的主要内容,如果未能解决你的问题,请参考以下文章