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

Acwing第 31 场周赛完结

Acwing第 36 场周赛完结

Acwing第 56 场周赛完结

Acwing第 32 场周赛完结

Acwing第 59 场周赛完结

Acwing第 57 场周赛未完结