您的位置:首页 > 移动开发

CF #632A(A. Grandma Laura and Apples,)数学题

2016-03-03 23:14 330 查看
题意:有n个顾客买老太太的苹果,单价p,每个顾客买老太太所拥有苹果的一半,老太太会对某些顾客优惠即送半个苹果,最后苹果都卖光了,求总共卖了多少钱。

Examples

input

2 10

half

halfplus

output

15

input

3 10

halfplus

halfplus

halfplus

output

55

half表示不送苹果,halfplus即对顾客赠送半个苹果。

分析:从后往前推,由于苹果已卖完,所以最后一个顾客买的时候一定是剩余1个苹果,如果赠送的话,从后往前是1,3,7,15,,,,,

赠半个苹果就是2*n+1,不赠的话就是2*n;

#include<bits/stdc++.h>
using namespace std;
int main()
{
string s[42];
int n,p;
scanf("%d%d",&n,&p);
for(int i=1;i<=n;i++)
cin>>s[i];
__int64 sum=(p>>1),num=1;
for(int i=n-1;i>0;i--)
{
if(s[i]=="halfplus")
num=(num<<1)+1,sum+=((num>>1)+0.5)*p;//注意要加上0.5,因为num>>1时会丢失0.5,所以要加上
else
num<<=1,sum+=(num>>1)*p;
}
printf("%I64d\n",sum);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: