Codeforces Round #411 (Div. 2) D. Minimum number of steps
来源:互联网 发布:java重写 有什么用 编辑:程序博客网 时间:2024/05/21 17:28
题意:给你一个只含若干个 a 和 b 的字符串,你进行一个操作(把字符串ab变成bba),让你求把所给字符串变成不含 子串ab 的字符串的最小次数。
思路:从后往前遍历,从遇到第一个b开始记录b出现的次数ans,当出现a后,通过变换把a移到第一个b后面需要ans次操作,同时b的个数*2,即ans*=2,一直遍历到头即可,注意,sum和ans都要mod1e9+7;
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
char str[1000010];
gets(str);
int k = strlen(str);
long long ans = 0;
int gg = 0;
long long sum = 0;
for(int i = k-1;i>=0;i--)
{
if(str[i]=='b')
gg = 1;
if(gg==0&&str[i]=='a')
continue;
if(str[i]=='b')
ans++;
else if(str[i]=='a')
{
sum += ans;
ans*=2;
ans %= 1000000007;
sum %= 1000000007;
}
}
printf("%lld",sum);
return 0;
}
{
char str[1000010];
gets(str);
int k = strlen(str);
long long ans = 0;
int gg = 0;
long long sum = 0;
for(int i = k-1;i>=0;i--)
{
if(str[i]=='b')
gg = 1;
if(gg==0&&str[i]=='a')
continue;
if(str[i]=='b')
ans++;
else if(str[i]=='a')
{
sum += ans;
ans*=2;
ans %= 1000000007;
sum %= 1000000007;
}
}
printf("%lld",sum);
return 0;
}
0 0
- Codeforces Round #411 (Div. 2) D. Minimum number of steps
- Codeforces Round #411 (Div. 2) D. Minimum number of steps
- Codeforces Round #411 (Div. 2) D. Minimum number of steps
- Codeforces Round #411(Div. 2)D. Minimum number of steps【思维递推+快速幂】
- Codeforces Round #411 (Div. 2) D. Minimum number of steps(思维题目)
- Codeforces Round #411 D. Minimum number of steps
- Codeforces Round #411 D. Minimum number of steps (贪心。)
- CF Round #411 (Div. 2) Minimum number of steps
- #411 Div.2 D. Minimum number of steps
- 【Codeforces Round #411 (Div. 1)】Codeforces 804B Minimum number of steps
- Codeforces Round #411 D. Minimum number of steps (思维题)
- Codeforces Round #411 D. Minimum number of steps【逆向思维+模拟】
- Codeforces 805D Minimum number of steps
- CodeForces 805D Minimum number of steps
- 【Codeforces 805】D. Minimum number of steps
- Codeforces Round #411(A. Fake NP; B. 3-palindrome; C. Find Amir; D.Minimum number of steps)
- Codeforces Round #171 (Div. 2) D. The Minimum Number of Variables
- codeforces 805D Minimum number of steps (水题)
- Linux文件系统
- 装饰者设计模式
- 坚持#第179天~虽然磨难无量,但是前途也无量、学以致用
- 调用系统相机摄像和截图
- RHCSA
- Codeforces Round #411 (Div. 2) D. Minimum number of steps
- web学习第一节练习
- # linear regression & logistics regression学习笔记
- nginx 服务器重启命令,关闭
- 当良心受到一万点伤害时,你会选择利益还是良心
- 位运算
- 04-树7 二叉搜索树的操作集
- PHP基础(2)---PHP函数
- PAT 乙级 1027. 打印沙漏(20)