2021暑假每日一题 week3 未完结

Posted 辉小歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021暑假每日一题 week3 未完结相关的知识,希望对你有一定的参考价值。

3776. 水果拼盘【难度: 简单 / 知识点: 贪心】

#include<bits/stdc++.h>
using namespace std;
int main(void)
{
    int t; cin>>t;
    while(t--)
    {
        int a,b,c,d,e,f; cin>>a>>b>>c>>d>>e>>f;
        if(e>f)
        {
            if(d<=a)  cout<<d*e<<endl;
            else      cout<<a*e+min(min(b,c),d-a)*f<<endl;
        }
        else
        {
            int t=min(min(b,c),d);
            int sum=t*f;
            cout<<sum+min(a,d-t)*e<<endl;
        }
    }
}

3777. 砖块 【难度: 一般 / 知识点: 模拟】

#include<bits/stdc++.h>
using namespace std;
int main(void)
{
    int t; cin>>t;
    while(t--)
    {
        int n; cin>>n;
        string s,s1,s2; cin>>s;
        vector<int>a,b;
        s1=s2=s;
        for(int i=0;i<s1.size()-1;i++)//全变成W
        {
            if(s1[i]=='B') 
            {
                a.push_back(i+1);
                if(s1[i+1]=='W') s1[i+1]='B';
                else s1[i+1]='W';
            }
        }
        for(int i=0;i<s2.size()-1;i++)
        {
            if(s2[i]=='W') 
            {
                b.push_back(i+1);
                if(s2[i+1]=='W') s2[i+1]='B';
                else s2[i+1]='W';
            }
        }
        if(s1[n-1]=='W'||s2[n-1]=='B')
        {
            if(s1[n-1]=='W')
            {
                cout<<a.size()<<endl;
                if(a.size())
                {
                    for(int i=0;i<a.size();i++) cout<<a[i]<<" ";
                    cout<<endl;
                }
            }
            else 
            {
                cout<<b.size()<<endl;
                if(b.size())
                {
                    for(int i=0;i<b.size();i++) cout<<b[i]<<" ";
                    cout<<endl;
                }
            }
        }
        else puts("-1");
    }
    return 0;
}
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>

using namespace std;

int n;

void update(char& c)
{
    if (c == 'W') c = 'B';
    else c = 'W';
}

bool check(string s, char c)
{
    vector<int> res;
    for (int i = 0; i + 1 < n; i ++ )
    {
        if (s[i] != c)
        {
            update(s[i]);
            update(s[i + 1]);
            res.push_back(i);
        }
    }
    if (s.back() != s[0]) return false;

    cout << res.size() << endl;
    for (auto x: res) cout << x + 1 << ' ';
    if (res.size()) cout << endl;

    return true;
}

int main()
{
    int T;
    cin >> T;
    while (T -- )
    {
        string s;
        cin >> n >> s;
        if (!check(s, 'W') && !check(s, 'B')) puts("-1");
    }
    return 0;
}

以上是关于2021暑假每日一题 week3 未完结的主要内容,如果未能解决你的问题,请参考以下文章

2021暑假每日一题 week8 未完结

2021夏季每日一题 week3 完结

寒假每日一题(入门组)week3 完结

2021暑假每日一题 week2 完结

2021暑假每日一题 week5 完结

2021暑假每日一题 week9 完结