当前位置: 首页 > news >正文

传智杯 第六届-复赛-D

题目描述:

        小红定义两个字符串同构,当且仅当对于i∈[1,n],b[i]−a[i]i∈[1,n],b[i]-a[i]i∈[1,n],b[i]−a[i]是定值。例如,"bacd"和"edfg"是同构的。

        现在小红拿到了一个长度为n的字符串a,她想知道,有多少长度为n的字符串b同时满足以下两个条件:
        1.b的每一位都和a不同。
        2.b和a不同构。

输入描述:

        输入一个仅由英文小写字母组成的字符串,代表字符串a。字符串长度不超过10^5。

输出描述:

        一个整数,代表合法的字符串b的数量。由于答案过大,请对10^9+7取模。

示例1

输入:

a

输出:

0

说明:

任意长度为1的字符串都和"a"同构。

 

示例2

输入:

ab

输出:

601

解题步骤:

        ①输入

        ②计算共有多少个情况的发生:每个位置都会有25中可能,所以是25*n

        ③计算同构的情况:同构情况就是某种位置上的字符不同就对应1种情况,计算同构情况就是计算在该位置上可以取多少个元素,即25-(最大元素-最小元素)

        ④计算最终的情况:即总情况-同构情况

        ⑤输出

注意:

        ①计算total的时候,可能会出现超出字符长度的情况,所以需要提前对其进行取模的操作,而不是最后才进行取模的操作。

代码:

#include<iostream>
#include<string>
#include<math.h>
#define int long long
using namespace std;
signed  main()
{//输入string str;getline(cin, str);//计算共有多少个情况的发生(25^n个),每个位置有25种情况int mod = 1e9 + 7;int n = str.length();   //字符串的长度int total = 1;for (int i = 0;i < n;i++){total = (total * 25) % mod;}//计算同构的情况char mi = str[0];   //最小字符char ma = str[0];    //最大字符for (int i = 1;i < n;i++){mi = min(mi, str[i]);   //找到最小字符ma = max(ma, str[i]);   //找到最大字符}int isomorphism = 25 - (ma - mi);//计算最终的情况	int sum = (total - isomorphism) % mod;//输出cout << sum << endl;system("pause");
}

 

http://www.lryc.cn/news/474007.html

相关文章:

  • Java - 数组实现大顶堆
  • ifuse挂载后,在python代码中访问iOS沙盒目录获取app日志
  • Windows WSL环境下安装 pytorch +ROCM 支持AMD显卡
  • uniapp中skymap.html(8100端口)提示未登录的排查与解决方法
  • 训练模型时梯度出现NAN或者INF(禁用amp的不同level)
  • Maven核心概念
  • Sonatype Nexus 部署手册
  • TLV320AIC3104IRHBR 数据手册 一款低功耗立体声音频编解码器 立体声耳机放大器芯片麦克风
  • (8)结构体、共用体和枚举类型数据
  • Jedis操作和springboot整合redis
  • 基于AI大模型的复杂扫描件PDF信息提取与规整
  • 为什么https先非对称加密,然后对称加密?
  • 【Coroutines】Full Understanding of Kotlinx.Corutines Framework
  • Python面向对象,实现图片处理案例,支持:高斯模糊、Canny边缘检测、反转边缘图像、生成手绘效果、调亮度......等等
  • SOLID - 依赖倒置原则(Dependency Inversion Principle)
  • 【.NET 8 实战--孢子记账--从单体到微服务】--需求拆分与规划
  • 在macOS的多任务处理环境中,如何平衡应用的性能与用户体验?这是否是一个复杂的优化问题?如何优化用户体验|多任务处理|用户体验|应用设计
  • Vscode配置CC++编程环境的使用体验优化和补充说明
  • 十个方法杜绝CAD图纸泄密风险!2024年图纸防泄密指南!「必看」
  • 技术干货|HyperMesh CFD功能详解:虚拟风洞 Part 1
  • 022集——统计多条线的总长度(CAD—C#二次开发入门)
  • 大模型重要技术系列三:高效推理
  • Android 刘海屏适配指南
  • 微信小程序服务通知
  • Ubuntu使用Qt虚拟键盘,支持中英文切换
  • 泰州农商行
  • 扫雷(C语言)
  • 【实践功能记录8】使用UseElementSize实现表格高度自适应
  • SMO算法 公式推导
  • nodejs包管理器pnpm