首先我们得记下有多少个Jay然后记下J、a、y的个数,当然怎么记都可以,别超时就行,然后直接讨论情况就可以了。

首先如果jay没有连续出现过,那么直接输出出现次数最小的那个字母即可,因为能不能换碎片得看最小的那个,木桶原理都懂吧,这取决于下限。

如果说,整个字符串都是jay的话,我们因该拿出一个jay来,即:2的(jay连续出现次数-1)次方。

最后一种情况,就是有连续的也有不连续的,答案为出现次数最少的那个字符*jay连续出现次数即刻,因为我们得把不连续的先兑换了,最后直接×2的n次方(n为jay出现的连续次数)。

题目本身其实并不难,就看你眼睛好不好使(题目在最下面说明了对结果取余,然后字符串长度为10的八次方,容易让人想到用快速幂处理,我眼睛瞎,没看到对结果取余,所以疯狂WA)。

#include <iostream>
#include <algorithm>
#include <string>
#include <cmath>
#include <cstring>
const long long mod=1e9+7;
using namespace std;
typedef long long LL;
long long kuaisumi(long long a,long long b)
{a%=mod;long long sum=1;do{if(b&1){sum=(sum*a)%mod; }//位运算效率更高a=(a%mod*a%mod)%mod;b>>=1;}while(b);return sum;
}
char a[100000500];
int main()
{scanf("%s",a);int l=strlen(a);int i;long long j[4]={0};long long tem;long long min=100000000;for(i=0;i<l;i++)if(a[i]=='J'&&a[i+1]=='a'&&a[i+2]=='y'&&i+2<l){j[3]++;i+=2;continue;}else if(a[i]=='J')j[0]++;else if(a[i]=='a')j[1]++;else if(a[i]=='y')j[2]++;for(i=0;i<3;i++){if(j[i]<min)min=j[i];}if(j[3]>0){if(min-j[3]>=1)printf("%lld",(min%mod*kuaisumi(2,j[3]))%mod);elseprintf("%lld",kuaisumi(2,j[3]-1));}else{printf("%lld",min%mod);}
}

哈尔滨理工大学21级新生程序设计竞赛(同步赛)Jay的小迷弟(快速幂)相关推荐

  1. 牛客练习-哈尔滨理工大学21级新生程序设计竞赛(同步赛)

    比赛链接:哈尔滨理工大学21级新生程序设计竞赛(同步赛) 文章目录 前言 正文 A.考试周破防 B.咖啡店 C.kiki和bob玩取石子 D.猴王kiki分桃 E.很二的拆分 F.构造字符串 G.信号 ...

  2. 哈尔滨理工大学21级新生程序设计竞赛(同步赛)错题笔记

    目录: 新生赛题目链接 C kiki和bob玩取石子 E 很二的拆分 F 构造字符串 G 信号之旅 H 小球滚动 I kiki看球赛 J 跳一跳 K Jay的小迷弟 L 翻转卡片 新生赛题目链接 C ...

  3. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛) 题解

    "科林明伦杯"哈尔滨理工大学第十届程序设计竞赛(同步赛) 题解 萌新又来写题解啦 原题链接 B 减成一 题意:存在n个数,每次操作可以任选一个区间使得区间内的所有数字减一.问最少多 ...

  4. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛)---全题目+题解

    文章目录 A.点对最大值 B.减成一 C.面积 D.扔硬币 E.赛马 F.三角形 G.养花 H.直线 I.字典序 J.最大值 A.点对最大值 链接:https://ac.nowcoder.com/ac ...

  5. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛) F

    F 三角形 链接:https://ac.nowcoder.com/acm/contest/5758/F 来源:牛客网 小明有一根长度为a的木棒,现在小明想将木棒分为多段(每段木棒长度必须为整数), 使 ...

  6. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛) 点对最大值 dp

    链接:https://ac.nowcoder.com/acm/contest/5758/A 来源:牛客网 题目描述 这里有一棵树,每个点和每条边都存在一个价值.对于树上点对的价值,包括点对的起点和终点 ...

  7. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛) E

    E 赛马 一天小明与他同学准备赛马,他们每人有n匹马,每匹马有一个固定的战力值,战力值高的马会战胜战力值低的马并赢得比赛.每匹马只能出场比赛一次.小明偷看到了他对手每匹马的出场顺序,小明在更改自己马出 ...

  8. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛)

    A.点对最大值 这里有一棵树,每个点和每条边都存在一个价值.对于树上点对的价值,包括点对的起点和终点以及路径上边权值之和,不包括路径上其他点值. 求这颗树上最大的点对价值为多少.点对至少需要两个点. ...

  9. 科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛)

    比赛网址传送门 目录 A 点对最大值 B 减成一 C 面积 D 扔硬币 E 赛马 F 三角形 G 养花 H 直线 I 字典序 J 最大值 A 点对最大值 求这个树的直径,已经见过三次了,还是没打出来, ...

  10. “华为杯“ 武汉大学21级新生程序设计竞赛

    "华为杯" 武汉大学21级新生程序设计竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com) D.和谐之树(线段树) #i ...

最新文章

  1. OpenCV双目稠密匹配BM算法源代码详细解析
  2. 如何使用jQuery创建“请稍候,正在加载...”动画?
  3. 线程同步的各种方法汇总
  4. 数论 —— 高次同余方程与 BSGS 算法
  5. NSArray中存的是实体时的排序
  6. box head上身旋转问题
  7. 让你页面速度飞起来的前端性能优化方案
  8. 网页模板----01
  9. java下载文件excel格式错乱,excel表格数据错乱如何修复-excel表格里的文件突然格式全部乱了,怎么恢复?...
  10. visio中使用连接线连接形状
  11. ATFX:美国通胀转折点已来,激进加息势将暂缓?
  12. word文档编写时 delete键和backspace键的用法
  13. C#日历控件(MonthCalendar)
  14. nginx配置详细说明
  15. 计算机硬盘有坏道,硬盘有坏道就不能用了吗?别再吃哑巴亏了,今天跟大家再说一次!...
  16. Python爬虫——爬取博物馆新闻 + 情感倾向分析 + 导入数据库
  17. JavaScript之排他思想详述
  18. 计算机上无线网络开关在哪里,台式电脑wifi开关在哪
  19. Selenium学习_常用场景代码示例
  20. ie浏览器html插入图片,IE浏览器网页不显示图片如何解决?解决方法介绍

热门文章

  1. 在一个循环链队中只有尾指针(记为rear,结点结构为数据域data,指针域next),请给出这种队列的入队和出队操作的实现过程。
  2. IPD中的DCP评审
  3. 正睿OIday8-day10
  4. 万花筒写轮眼画法_万花筒写轮眼怎么画?
  5. android vivo oppo 真机调试 apk、安装失败,系统老是报“解析包时出现问题”
  6. 微信小程序的购物车功能
  7. 广义相对论和狭义相对论到底是讲什么的?
  8. java 分布式缓存 开源_Java开源分布式键-值缓存系统Voldemort
  9. CF855G. Harry Vs Voldemort(边双,并查集,dp)
  10. 第4阶段 Mysql数据库