A题(暴力)

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 返回牛牛能喝的最多的酒
     * @param m int整型 酒单价
     * @param n int整型 牛牛的现金
     * @return int整型
     */
    int countWine(int m, int n) {
        // write code here
        int i=1000;
        int a=n/m;
        int b=n/m;
        int sum=n/m;
        while(i)
        {
            i--;
            int t=0;
            t+=a/2;
            t+=b/4;
            sum+=t;
            a=a-a/2*2;
            b=b-b/4*4;
            a+=t;
            b+=t;

        }
        return sum;
    }
};

B题(二分答案)

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 
     * @param x string字符串 
     * @return int整型
     */
int check(int x,string s)
{
    int a1=0;
    int a2=0;
    int a3=0;
      for(int i=0;i<s.length();i++)
      {

            if(s[i]=='c'&&a3<x&&a1==x&&a2==x)
            a3++;
            if(s[i]=='b'&&a2<x&&a1==x)
            a2++;
              if(s[i]=='a'&&a1<x)
            a1++;
      }
      if(a1==x&&a2==x&&a3==x)
      return 1;
      return 0;
}
 int Maximumlength(string x) {
        // write code here
        int l=0;
        int r=x.length();
        while(r-l>1)
        {
          int mid=l+r>>1;
          if(check(mid,x))
          l=mid;
          else
          {
              r=mid;
          }

        }
        return l*3;
    }
};

C题(博弈论,打表找规律)

class Solution {
public:
    /**
     * 
     * @param n int整型 
     * @param p int整型 
     * @param q int整型 
     * @return int整型
     */
    int Gameresults(int n, int p, int q)
{
    // write code here
    if (n <= p)
        return 1;
    if (p >= q)
    {
        if (p > q)
            return 1;
        if (p == q)
        {
            if (n % (q+1) == 0)
                return -1;
            else
                return 1;
        }
    }

        return -1;

}
};