博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷 CF804B Minimum number of steps
阅读量:5325 次
发布时间:2019-06-14

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

嗯...

 

题目链接:https://www.luogu.org/problemnew/show/CF804B

 

这道题没有什么技巧,只是一道找规律的题。

首先看到“ab”可以换成“bba”,所以首先要确定我们要逆序枚举(注意s从s_0开始),如果遇到a,则把ans += cntb,因为可以换的次数即为a后面b的个数,然后把cntb的个数乘二,因为一个ab可以换bba,也就一个b换两个b。如果遇到b,则直接cntb++即可,不需要别的操作。

 

注:mod可以随时模,不会影响最后结果。

 

AC代码:

1 #include
2 #include
3 #include
4 5 using namespace std; 6 7 const int mod = 1e9 + 7; 8 char s[1000005]; 9 long long ans, cntb;10 11 int main(){12 scanf("%s", s);13 int len = strlen(s);14 for(int i = len - 1; i >= 0; i--){15 if(s[i] == 'a'){16 (ans += cntb) %= mod;17 (cntb *= 2) %= mod;18 }19 else cntb++;20 }21 printf("%lld\n", ans % mod);22 return 0;23 }
AC代码

 

转载于:https://www.cnblogs.com/New-ljx/p/11234330.html

你可能感兴趣的文章
TCP和UDP的"保护消息边界”
查看>>
SQL游标使用实例
查看>>
Struts国际化
查看>>
信息安全系统设计基础第八周期中总结
查看>>
Java笔记(十七) 异步任务执行服务
查看>>
点击切换panel
查看>>
sqoop mysql导入hive 数值类型变成null的问题分析
查看>>
phpstorm中数组格式对齐
查看>>
url介绍
查看>>
Mongodb常用命令
查看>>
jason数据格式详解
查看>>
浅谈存储过程
查看>>
【机器学习】--谱聚类从初始到应用
查看>>
复制MIFARE Classic卡
查看>>
20175126《Java程序设计》第二周学习总结
查看>>
面向对象 创建对象
查看>>
【BZOJ2656】 [Zjoi2012]数列(sequence)
查看>>
关于idea激活
查看>>
NGUI事件监听之UIEventListener
查看>>
JavaScript将具有父子关系的原始数据格式化成树形结构数据(id,pid)
查看>>