zoukankan      html  css  js  c++  java
  • Codeforces Round #585 (Div. 2) CF1215A~C

    CF1215A. Yellow Cards简单的模拟,给定了黄票张数,判断最少和最多有多少人被罚下场。

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int a,b,aa,bb,n,nnn;
        cin>>a>>b>>aa>>bb>>n;
        nnn=n;
        int t=(aa-1)*a+(bb-1)*b;
        int tt=0;
        if(aa<=bb)
        {
            if(n>=aa*a)
            {
                tt+=a;
                n-=aa*a;
            }
            else
            {
                tt+=n/aa;
                int o=n/aa;
                n-=o*aa;
            }
            if(n>=bb*b)
            {
                tt+=b;
                n-=bb*b;
            }
            else
            {
                tt+=n/bb;
                int o=n/bb;
                n-=o*bb;
            }
        }
        else
        {
            if(n>=bb*b)
            {
                tt+=b;
                n-=bb*b;
            }
            else
            {
                tt+=n/bb;
                int o=n/bb;
                n-=o*bb;
            }
            if(n>=aa*a)
            {
                tt+=a;
                n-=aa*a;
            }
            else
            {
                tt+=n/aa;
                int o=n/aa;
                n-=o*aa;
            }
        }
        if(t>=nnn)
        {
            cout<<"0 "<<tt<<endl;
        }
        else
        {
            cout<<min(nnn-t,a+b)<<" "<<tt<<endl;
        }
        return 0;
    }
    A. Yellow Cards

    CF1215B. The Number of Products,我们以第一位数到最后一位数的乘积来分析,1-n的状态数分别是n n-1 n-2……1。

    观察易得减少一个正数时,正数的状态-1,减少一个负数时,负数的状态数-1,并正负状态交换,即可O(n)递推求出答案

    #include <bits/stdc++.h>
    using namespace std;
    int a[2000005];
    typedef long long ll;
    int main()
    {
        int n;
        cin>>n;
        ll l=0,r=0;
        ll tt=1;
        for(int i=1;i<=n;++i)
        {
            ll t;
            cin>>t;
            if(t>0)
            {
                a[i]=1;
            }
            else
            {
                a[i]=-1;
            }
            tt*=a[i];
            if(tt>0)
            {
                l++;
            }
            else
            {
                r++;
            }
        }
        ll al=l,ar=r;
        for(int i=2;i<=n;++i)
        {
            if(a[i-1]>0)
            {
                l--;
            }
            else
            {
                r--;
                swap(l,r);
            }
            al+=l;
            ar+=r;
        }
        cout<<ar<<" "<<al;
        return 0;
    }
    B. The Number of Products

    CF1215C. Swap Letters 首先只有ab和ba出现的次数为奇数不成立,其余时候aba可和aba一次配对,ab和ba需要两次这里我用了vecotr来避免重复使用

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    vector<int>vt1;
    vector<int>vt2;
    int main()
    {
        int n,aaa=0;
        cin>>n;
        string str1,str2;
        cin>>str1>>str2;
        int flag=0;
        for(int i=0;i<str1.size();++i)
        {
            if(str1[i]=='a'&&str2[i]=='a')
            {
                flag++;
            }
            if(str1[i]=='b'&&str2[i]=='b')
            {
                flag++;
            }
        }
        flag=n-flag;
        if(flag%2!=0)
        {
            cout<<-1;
            return 0;
        }
        for(int i=0;i<str1.size();++i)
        {
            if(str1[i]=='a'&&str2[i]=='b')
            {
                vt1.push_back(i);
            }
            if(str2[i]=='a'&&str1[i]=='b')
            {
                vt2.push_back(i);
            }
        }
        for(int i=vt1.size()-1;i>=0;i-=2)
        {
            int j=i-1;
            if(j>=0)
            {
                aaa++;
                vt1.pop_back();
                vt1.pop_back();
            }
        }
        for(int i=vt2.size()-1;i>=0;i-=2)
        {
            int j=i-1;
            if(j>=0)
            {
                aaa++;
                vt2.pop_back();
                vt2.pop_back();
            }
        }
        if(vt1.size())
        {
            int i=vt1.size()-1;
            int j=vt2.size()-1;
            aaa++;
            aaa++;
        }
        cout<<aaa<<endl;
        vt1.clear();
        vt2.clear();
        for(int i=0;i<str1.size();++i)
        {
            if(str1[i]=='a'&&str2[i]=='b')
            {
                vt1.push_back(i);
            }
            if(str2[i]=='a'&&str1[i]=='b')
            {
                vt2.push_back(i);
            }
        }
        for(int i=vt1.size()-1;i>=0;i-=2)
        {
            int j=i-1;
            if(j>=0)
            {
                cout<<vt1[j]+1<<" "<<vt1[i]+1<<endl;
                vt1.pop_back();
                vt1.pop_back();
            }
        }
        for(int i=vt2.size()-1;i>=0;i-=2)
        {
            int j=i-1;
            if(j>=0)
            {
                cout<<vt2[j]+1<<" "<<vt2[i]+1<<endl;
                vt2.pop_back();
                vt2.pop_back();
            }
        }
        if(vt1.size())
        {
            int i=vt1.size()-1;
            int j=vt2.size()-1;
            cout<<vt1[i]+1<<" "<<vt1[i]+1<<endl;
            cout<<vt1[i]+1<<" "<<vt2[j]+1<<endl;
        }
        return 0;
    }
    C. Swap Letters
  • 相关阅读:
    jquery点击添加样式,再点击取出样式
    mongodb固定集合,建立管理员安全验证
    mongodb账号安全操作
    关于新闻,在线编辑器建表时此字段一定要为text
    创建外键表时同一个数据库中外键的名字不能用同一个
    a标签鼠标经过,字颜色和下划线的颜色都变红
    zend 快捷键
    mongodb 的安装和使用
    pdo文字水印类,验证码类,缩略图类,logo类
    erlang通讯解析浮点数的一些问题
  • 原文地址:https://www.cnblogs.com/yoududezongzi/p/11530763.html
Copyright © 2011-2022 走看看