牛客编程巅峰赛S2赛季(初级场第7场)考题参考代码(非官方)

牛牛爱喝酒

int countWine(int m, int n) {
    int ans = 0;
    int wine = n / m;    //当前牛牛可以喝的酒
    int bottles = 0;    //当前空瓶子的数量
    int lid = 0;        //当前瓶盖的数量
    while (wine > 0) {
        ans += wine;     //加上本次可以喝的酒
        bottles += wine;    //瓶子增加
        lid += wine;        //瓶盖增加
        wine = bottles / 2 + lid / 4;    //计算下次可以喝的酒
        //瓶盖喝和瓶子更新   
        bottles %= 2;  
        lid %= 4;
    }
    return ans;
    }
};



牛牛的特殊子序列

int i,n;
int sum[1000005];
vector < int > a , c;
class Solution {
public:
    /**
     *
     * @param x string字符串
     * @return int整型
     */
    int Maximumlength(string x) {
       n=x.size();
        for(i=0;i<n;i++)
        {
            if(i!=0)sum[i]=sum[i-1];
            if(x[i]== 'a' )a.push_back(i);
            else if(x[i] =='c')c.push_back(i);
            else if(x[i] =='b' )sum[i]++;
        }
        reverse(c.begin(),c.end());
        int pos=0;
        for(i=0;i<a.size()&&i<c.size();i++)
        {
            if(c[i]<a[i])break;
            if(sum[c[i]]-sum[a[i]]<i+1)break;
            pos++;
        }
        return 3*pos;
    }
};



分贝壳游戏

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
        int ans;
        if(p>q)ans=1;
        else if(q>p)
        {
            if(p>=n)ans=1;
            else ans=-1;
        }
        else
        {
            if(n%(p+1))ans=1;
            else ans=-1;
        }
        return ans;
    }
};


全部评论

相关推荐

10-11 15:42
皖西学院 Java
青鱼LINK:我硕士,也是java0面试,吾道不孤
点赞 评论 收藏
分享
ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务