AcWing第35场周赛题解

第35场周赛活动链接

problem.A AcWing4212 字符串比较

先遍历将字母大小写统一后,直接利用string的不等运算符得出结果。

代码

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string a,b;
    cin>>a>>b;
    
    for(int i=0;i<a.size();i++)
        if(a[i]>='A'&&a[i]<='Z') a[i]+=32;
    for(int i=0;i<b.size();i++)
        if(b[i]>='A'&&b[i]<='Z') b[i]+=32;
    
    if(a>b) cout<<"1";
    else if(a==b) cout<<"0";
    else cout<<"-1";
    return 0;
}

problem.B AcWing4213 最小结果

遍历所有可能的运算顺序

代码

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

typedef long long LL;

LL res=1e18;
char op[5];

void dfs(vector<LL> vec,int u)
{
    if(vec.size()==1) res=min(res,vec[0]);
    else
    {
        for(int i=0;i<vec.size();i++)
            for(int j=i+1;j<vec.size();j++)
            {
                vector<LL> t;
                for(int k=0;k<vec.size();k++)
                    if(k!=i&&k!=j) t.push_back(vec[k]);
                if(op[u]=='*') t.push_back(vec[i]*vec[j]);
                else t.push_back(vec[i]+vec[j]);
                dfs(t,u+1);
            }
    }
}

int main()
{
    vector<LL> vec(4);
    for(int i=0;i<4;i++ ) cin>>vec[i];
    for(int i=0;i<3;i++) cin>>op[i];
    
    dfs(vec,0);
    
    cout<<res<<endl;
    
    return 0;
}

problem.C AcWing4214 三元组

1.遍历i然后遍历j再遍历k是O(n^3),会超时。
2.要求i<j<k,可行思路是O(n)遍历j,然后分开从j左右以O(n)找\(s[i]\)满足条件的最小的\(c[i]\)\(c[k]\),然后与\(c[k]\)求和后重复此操作取min。这样时间复杂度是O(n^2)

代码

#include <iostream>
#include <algorithm>

using namespace std;

const int N = 3010;

const int INF = 0x3f3f3f3f;
int s[N],c[N];

int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++) cin>>s[i];
    for(int i=1;i<=n;i++) cin>>c[i];
    
    int res=INF;
    for(int i=2;i<n;i++)
    {
        int a=INF,b=INF;
        for(int j=1;j<i;j++)
            if(s[j]<s[i]) a=min(a,c[j]);
        for(int j=i+1;j<=n;j++)
            if(s[j]>s[i]) b=min(b,c[j]);
        res=min(res,a+c[i]+b);
    }
    
    if(res==INF) cout<<"-1";
    else cout<<res;
    
    return 0;
}
posted @ 2022-01-23 10:48  泝涉江潭  阅读(22)  评论(0)    收藏  举报