牛牛爱喝酒
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;
}
};