codeforces 399B. Red and Blue Balls 解题报告
2024-08-29 00:27:09
题目链接:http://codeforces.com/problemset/problem/399/B
题目意思:给出 n 个只由 R 和 B 组成的字符串(由上到下排列,相当于栈),问最多可以操作多少轮。一轮包括三个步骤:(1)如果栈顶的球为 red,则弹出(注意可以弹出多个),直到遇到栈顶的球为blue (2)将这个blue球替换为red球(只操作一次) (3)在替换完red 球上面添加blue球,直到有 n 个球为止。当然一轮中不一定3个步骤都执行。当 n 个球都为red时,就不能再操作了。
千万不要直接模拟,会超时的!!!观察可以发现,它实质是考我们位运算!red球代表该位的数为0,blue则代表该位为1。那么只需要对输入的那个字符串,算出二进制数转换成十进制是多少,就是答案了。
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std; typedef long long LL;
const int maxn = + ;
char s[maxn];
LL ans; int main()
{
int n;
while (scanf("%d", &n) != EOF)
{
getchar();
gets(s);
ans = ;
for (int i = ; i < n; i++)
{
if (s[i] == 'B')
ans += (1LL << i);
}
printf("%lld\n", ans);
}
return ;
}
最新文章
- MySQL主从环境下存储过程,函数,触发器,事件的复制情况
- 为jQuery的$.ajax设置超时时间
- MagicalRecord 多表关联数据操作
- spring websocket源码分析
- 第14章 使用DHCP动态管理主机地址
- 【python游戏编程之旅】第二篇--pygame中的IO、数据
- iOS - OC NSArray		数组
- iOS中nil、Nil、NULL、NSNull详解(转)
- hdu 2578 Dating with girls(1)
- c++基础(三):多态
- 杭电ACM2091--空心三角形
- POJ 2699 战斗小王子
- windows phone8手机玩玩
- xaml的margin和css的margin对比
- 使用DOM解析XML文件,、读取xml文件、保存xml、增加节点、修改节点属性、删除节点
- React 之props属性
- FlashFXP用到的功能
- Linux常见问题汇总
- mq for aix 清理步骤
- 怎样动态地插入不会暴露给用户的JS文件