博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CodeForces - 805D
阅读量:6237 次
发布时间:2019-06-22

本文共 1496 字,大约阅读时间需要 4 分钟。

D. Minimum number of steps

time limit per test1 second
memory limit per test256 megabytes
inputstandard input
outputstandard output
We have a string of letters 'a' and 'b'. We want to perform some operations on it. On each step we choose one of substrings "ab" in the string and replace it with the string "bba". If we have no "ab" as a substring, our job is done. Print the minimum number of steps we should perform to make our job done modulo 109?+?7.
The string "ab" appears as a substring if there is a letter 'b' right after the letter 'a' somewhere in the string.
Input
The first line contains the initial string consisting of letters 'a' and 'b' only with length from 1 to 106.
Output
Print the minimum number of steps modulo 109?+?7.
Examples
Input
ab
Output
1
Input
aab
Output
3
Note
The first example: "ab" ?→? "bba".
The second example: "aab" ?→? "abba" ?→? "bbaba" ?→? "bbbbaa".
Print the minimum number of steps modulo 109?+?7.
题意:给你一个只含'a'和'b'的串,让你把所有"ab"变为"bba",直到串中不含"ab"的子串,输出共变了多少次;
思路:仔细看提示的样例,可以发现最后的串中'a'的数量不变,那是不是可以看作把当前串的最后一个'a'移动到当前串中最后一个'b'后面,让ans加上移动的次数,并且'a'每移动一次,'b'的个数加一,从尾到头跑一遍,输出ans即可;
#include<iostream>
#include<string.h>
using namespace std;
const int mod = 1e9 + 7;
int main()
{
 long long cnt = 0;
 long long ans = 0;
 char a[1000005];
 scanf("%s", a);
 int len = strlen(a);
 for (int i = len-1; i>=0; i--)
  if (a[i] == 'b')
   cnt++;
  else
  {
   ans=(ans+cnt)%mod;
   cnt= (cnt+(cnt%mod))%mod;
  }
 cout << ans << endl;
 return 0;
}

转载于:https://www.cnblogs.com/RGBTH/p/6896526.html

你可能感兴趣的文章
ORACLE字符集基础知识
查看>>
JSP自定义标签开发入门《转》
查看>>
ResultSet相关ResultSetMetaData详细
查看>>
IIS7.5下的web.config 404应该如何配置
查看>>
分享20个最新的免费 UI 设计素材给设计师
查看>>
大论文中对参考文献添加操作相关总结
查看>>
Redis源代码分析(三)---dict哈希结构
查看>>
安卓--获取应用版本名称与版本号
查看>>
【转】Java判断是否是整数,小数或实数的正则表达式
查看>>
****创业者必看:黄太吉商业计划书完整版
查看>>
angularJS 事件广播与接收[转]
查看>>
The main reborn ASP.NET MVC4.0: using CheckBoxListHelper and RadioBoxListHelper
查看>>
什么是数据抽取
查看>>
Integer
查看>>
LaTeX 相对于 Word 有什么优势?
查看>>
invoke方法
查看>>
基于bootstrap的后台二级垂直菜单[转]
查看>>
Android Framework 记录之二
查看>>
李洪强iOS开发之-环信04_消息
查看>>
【Django】Django 文件下载最佳实践
查看>>