zoukankan      html  css  js  c++  java
  • codeforces 777 B

    有2个人 a b

    给你2串数子的长度

    每个人每一轮出一个数  a顺序 b可以任意

    然后求 b至少输掉几盘 a最多输掉几盘 

    显然要先统计一下数字

    然后针对着来

    1 求B能赢的和平局的  0 - 9模拟  取a中相对小的    然后计数  

    2 b尽量赢 去掉a相对大的  输出即可

    #include <iostream>
    #include<string.h>
    #include<stdio.h>
    #include<algorithm>
    
    using namespace std ;
    
    #define LL long long
    #define MAXN 1010
    char s1[MAXN],s2[MAXN];
    int a[15],b[15];
    int c[15],d[15];
    
    int main()
    {
        int n;
        scanf("%d",&n);
        scanf("%s%s",s1,s2);
        int i;
        for(i=0;i<n;i++)
        {
            a[s1[i]-'0']++;
            b[s2[i]-'0']++;
        }
        for(i=0;i<10;i++)
        {
            c[i]=a[i];
            d[i]=b[i];
        }
        int j=0;
        i=0;
        int ans1=n;
        while(1)
        {
            while(a[i]<=0&&i<=9)
                i++;
            while(j<=9&&(j<i||b[j]<=0))
                j++;
            if(i==10||j==10)
                break;
            while(a[i]>0&&b[j]>0)
            {
                a[i]--;
                b[j]--;
                ans1--;
            }
        }
        int ans2=0;
        i=9,j=9;
        while(1)
        {
            while(d[j]<=0&&j>=0)
                j--;
            while((c[i]<=0||i>=j)&&i>=0)
                i--;
            if(j==-1||i==-1)
                break;
            while(c[i]>0&&d[j]>0)
            {
                c[i]--;
                d[j]--;
                ans2++;
            }
        }
        printf("%d
    %d
    ",ans1,ans2);
        return 0 ;
    }
  • 相关阅读:
    Rotation Kinematics
    离职 mark
    PnP 问题方程怎么列?
    DSO windowed optimization 代码 (4)
    Adjoint of SE(3)
    IMU 预积分推导
    DSO windowed optimization 代码 (3)
    DSO windowed optimization 代码 (2)
    OKVIS 代码框架
    DSO windowed optimization 代码 (1)
  • 原文地址:https://www.cnblogs.com/cherryMJY/p/6480736.html
Copyright © 2011-2022 走看看