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

《P1246 编码》

题目描述

编码工作常被运用于密文或压缩传输。这里我们用一种最简单的编码方式进行编码:把一些有规律的单词编成数字。

字母表中共有 26 个字母 a,b,c,⋯,z,这些特殊的单词长度不超过 6 且字母按升序排列。把所有这样的单词放在一起,按字典顺序排列,一个单词的编码就对应着它在字典中的位置。

例如:

  • a→1;
  • b→2;
  • z→26;
  • ab→27;
  • ac→28。

你的任务就是对于所给的单词,求出它的编码。

输入格式

仅一行,被编码的单词。

输出格式

仅一行,对应的编码。如果单词不在字母表中,输出 0。

输入输出样例

输入 #1复制

ab

输出 #1复制

27

代码实现:

#include <iostream>
#include <string>
using namespace std;

// 计算组合数 C(n, r)
int combination(int n, int r) {
    int result = 1;
    for (int i = 0; i < r; ++i) {
        result *= (n - i);
        result /= (i + 1);
    }
    return result;
}

// 检查单词是否按字母升序排列
bool isAscending(const string& s) {
    for (int i = 1; i < s.length(); ++i) {
        if (s[i] <= s[i - 1]) {
            return false;
        }
    }
    return true;
}

int main() {
    string s;
    cin >> s;

    // 检查单词是否符合要求
    if (!isAscending(s)) {
        cout << 0 << endl;
        return 0;
    }

    int total = 0;
    int k = s.length();

    // 计算长度小于当前单词长度的所有单词数量
    for (int length = 1; length < k; ++length) {
        total += combination(26, length);
    }

    // 计算当前长度下,在输入单词之前的单词数量
    for (int i = 0; i < k; ++i) {
        int current_char = s[i] - 'a' + 1;
        int start = (i == 0) ? 1 : s[i - 1] - 'a' + 2;
        for (int j = start; j < current_char; ++j) {
            total += combination(26 - j, k - i - 1);
        }
    }

    // 最后加上当前单词在其起始字母之后的位置
    total++;

    cout << total << endl;

    return 0;
}    

相关文章:

《P1246 编码》

题目描述 编码工作常被运用于密文或压缩传输。这里我们用一种最简单的编码方式进行编码&#xff1a;把一些有规律的单词编成数字。 字母表中共有 26 个字母 a,b,c,⋯,z&#xff0c;这些特殊的单词长度不超过 6 且字母按升序排列。把所有这样的单词放在一起&#xff0c;按字典…...

基于Transformer框架实现微调后Qwen/DeepSeek模型的非流式批量推理

在基于LLamaFactory微调完具备思维链的DeepSeek模型之后(详见《深入探究LLamaFactory推理DeepSeek蒸馏模型时无法展示<think>思考过程的问题》),接下来就需要针对微调好的模型或者是原始模型(注意需要有一个本地的模型文件,全量微调就是saves下面的文件夹,如果是LoRA,…...

什么是 CSSD?

文章目录 一、什么是 CSSD&#xff1f;CSSD 的职责 二、CSSD 是如何工作的&#xff1f;三、CSSD 为什么会重启节点&#xff1f;情况一&#xff1a;网络和存储都断联&#xff08;失联&#xff09;情况二&#xff1a;收到其他节点对自己的踢出通知&#xff08;外部 fencing&#…...

服务器磁盘io性能监控和优化

服务器磁盘io性能监控和优化 全文-服务器磁盘io性能监控和优化 全文大纲 磁盘IO性能评价指标 IOPS&#xff1a;每秒IO请求次数&#xff0c;包括读和写吞吐量&#xff1a;每秒IO流量&#xff0c;包括读和写 磁盘IO性能监控工具 iostat&#xff1a;监控各磁盘IO性能&#xff0c…...

CentOS Linux升级内核kernel方法

目录 一、背景 二、准备工作 三、升级内核 一、背景 某些情况需要对Linux发行版自带的内核kernel可能版本较低&#xff0c;需要对内核kernel进行升级。例如&#xff1a;CentOS 7.x 版本的系统默认内核是3.10.0&#xff0c;该版本的内核在Kubernetes社区有很多已知的Bug&#…...

使用MetaGPT 创建智能体(1)入门

metagpt一个多智能体框架 官网&#xff1a;MetaGPT | MetaGPT 智能体 在大模型领域&#xff0c;智能体通常指一种基于大语言模型&#xff08;LLM&#xff09;构建的自主决策系统&#xff0c;能够通过理解环境、规划任务、调用工具、迭代反馈等方式完成复杂目标。具备主动推理…...

AF3 OpenFoldMultimerDataset类解读

AlphaFold3 data_modules 模块的 OpenFoldMultimerDataset 类是 OpenFoldDataset 类的子类,专门用于 多链蛋白质(Multimer) 数据集的训练。它通过引入 AlphaFold Multimer 论文 中描述的过滤步骤,来实现多链蛋白质的训练。这个类扩展了父类的功能,特别是为了处理多链蛋白质…...

【C++】多态功能细节问题分析

多态是在不同继承关系的类对象去调用同一函数&#xff0c;产生了不同的行为。值得注意的是&#xff0c;虽然多态在功能上与隐藏是类似的&#xff0c;但是还是有较大区别的&#xff0c;本文也会进行多态和隐藏的差异分析。 在继承中要构成多态的条件 1.1必须通过基类的指针或引用…...

[CISSP] [5] 保护资产安全

数据状态 1. 数据静态存储&#xff08;Data at Rest&#xff09; 指存储在磁盘、数据库、存储设备上的数据&#xff0c;例如&#xff1a; 硬盘、SSD服务器、数据库备份存储、云存储 安全措施 加密&#xff08;Encryption&#xff09;&#xff1a;如 AES-256 加密磁盘和数据…...

EIP-712:类型化结构化数据的哈希与签名

1. 引言 以太坊 EIP-712: 类型化结构化数据的哈希与签名&#xff0c;是一种用于对类型化结构化数据&#xff08;而不仅仅是字节串&#xff09;进行哈希和签名 的标准。 其包括&#xff1a; 编码函数正确性的理论框架&#xff0c;类似于 Solidity 结构体并兼容的结构化数据规…...

spring boot 集成redis 中RedisTemplate 、SessionCallback和RedisCallback使用对比详解,最后表格总结

对比详解 1. RedisTemplate 功能&#xff1a;Spring Data Redis的核心模板类&#xff0c;提供对Redis的通用操作&#xff08;如字符串、哈希、列表、集合等&#xff09;。使用场景&#xff1a;常规的Redis增删改查操作。特点&#xff1a; 支持序列化配置&#xff08;如String…...

基于S函数的simulink仿真

基于S函数的simulink仿真 S函数可以用计算机语言来描述动态系统。在控制系统设计中&#xff0c;S函数可以用来描述控制算法、自适应算法和模型动力学方程。 S函数中使用文本方式输入公式和方程&#xff0c;适合复杂动态系统的数学描述&#xff0c;并且在仿真过程中可以对仿真…...

每日一题洛谷P8664 [蓝桥杯 2018 省 A] 付账问题c++

P8664 [蓝桥杯 2018 省 A] 付账问题 - 洛谷 (luogu.com.cn) 思路&#xff1a;要使方差小&#xff0c;那么钱不能一下付的太多&#xff0c;可以让钱少的全付玩&#xff0c;剩下还需要的钱再让钱多的付&#xff08;把钱少的补上&#xff09;。 将钱排序&#xff0c;遍历一遍&…...

迅饶科技X2Modbus网关-GetUser信息泄露漏洞

免责声明&#xff1a;本号提供的网络安全信息仅供参考&#xff0c;不构成专业建议。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权&#xff0c;请及时与我联系&#xff0c;我将尽快处理并删除相关内容。 漏洞描述 该漏洞的存在是由于GetUser接口在…...

【Pandas】pandas DataFrame values

Pandas2.2 DataFrame Attributes and underlying data 方法描述DataFrame.index用于获取 DataFrame 的行索引DataFrame.columns用于获取 DataFrame 的列标签DataFrame.dtypes用于获取 DataFrame 中每一列的数据类型DataFrame.info([verbose, buf, max_cols, …])用于提供 Dat…...

蓝桥杯Java B组省赛真题高频考点近6年统计分类

基础考点 考点高频难度模拟9基础枚举5基础思维4基础动态规划3基础规律2基础单位换算2基础搜索 1基础双指针1基础数学1基础哈希表1基础暴力1基础Dijkstra1基础 二分1基础 中等考点 考点高频难度动态规划6中等数学5中等枚举4中等模拟3中等思维3中等贪心3中等前缀和3中等二分2中…...

关于inode,dentry结合软链接及硬链接的实验

一、背景 在之前的博客 缺页异常导致的iowait打印出相关文件的绝对路径-CSDN博客 里 2.2.3 一节里&#xff0c;我们讲到了file&#xff0c;fd&#xff0c;inode&#xff0c;dentry&#xff0c;super_block这几个概念&#xff0c;在这篇博客里&#xff0c;我们针对inode和dentr…...

PandasAI:当数据分析遇上自然语言处理

数据科学的新范式 在数据爆炸的时代&#xff0c;传统的数据分析工具正面临着前所未有的挑战。数据科学家们常常需要花费70%的时间在数据清洗和探索上&#xff0c;而真正的价值创造时间却被大幅压缩。PandasAI的出现&#xff0c;正在改变这一现状——它将生成式AI的强大能力注入…...

Unity网络开发基础 (3) Socket入门 TCP同步连接 与 简单封装练习

本文章不作任何商业用途 仅作学习与交流 教程来自Unity唐老狮 关于练习题部分是我观看教程之后自己实现 所以和老师写法可能不太一样 唐老师说掌握其基本思路即可,因为前端程序一般不需要去写后端逻辑 1.认识Socket的重要API Socket是什么 Socket&#xff08;套接字&#xff0…...

做题记录:和为K的子数组

来自leetcode 560 前言 自己只会暴力&#xff0c;这里就是记录一下前缀和哈希表的做法&#xff0c;来自灵神的前缀和哈希表&#xff1a;从两次遍历到一次遍历&#xff0c;附变形题 正文 首先&#xff0c;这道题无法使用滑动窗口&#xff0c;因为滑动窗口需要满足单调性&am…...

VMware虚拟机卡顿、CPU利用率低、编译Linux内核慢,问题解决与实验对比

目录 一、总结在前面&#xff08;节约时间就只看这里&#xff09;0 环境说明1 遇到的问题&#xff1a;2 问题的原因&#xff1a;3 解决办法&#xff1a;4 实验验证&#xff1a;5 关于虚拟机内核数量设置6 关于强行指定Vm能用的CPU内核 二、管理员启动&#xff0c;实验对比实验1…...

【7】数据结构的队列篇章

目录标题 队列的定义顺序队列的实现初始化入队出队顺序队列总代码与调试 循环队列的实现初始化入队出队获取队首元素循环队列总代码与调试 链式队列的实现链式队列的初始化入队出队获取队首元素链式队列总代码与调试 队列的定义 定义&#xff1a;队列&#xff08;Queue&#x…...

颜色归一化操作

当我们不太关注图像具体细节&#xff0c;只关注图像大致的内容时&#xff0c;为了避免光照角度、光照强度对图像的影响&#xff0c;可以采用下面进行归一化操作。这种颜色系统具有通道对表面方向、照明方向具有鲁棒性的特性&#xff0c;适用于图像分割等领域&#xff0c;在机器…...

2874. 有序三元组中的最大值 II

给你一个下标从 0 开始的整数数组 。nums 请你从所有满足 的下标三元组 中&#xff0c;找出并返回下标三元组的最大值。 如果所有满足条件的三元组的值都是负数&#xff0c;则返回 。i < j < k(i, j, k)0 下标三元组 的值等于 。(i, j, k)(nums[i] - nums[j]) * nums[k…...

05-Spring Security 认证与授权机制源码解析

Spring Security 认证与授权机制源码解析 结合之前的IOC、AOP、事务管理&#xff0c; 这一篇讲讲Spring 的安全性&#xff0c;以下是小弟对Spring Security的一些理解&#xff0c;以及在真实面试中碰到的一些问题做了些整理&#xff0c;欢迎各位大佬一起观摩指点&#xff01;&a…...

深度学习处理文本(6)

理解词嵌入 重要的是&#xff0c;进行one-hot编码时&#xff0c;你做了一个与特征工程有关的决策。你向模型中注入了有关特征空间结构的基本假设。这个假设是&#xff1a;你所编码的不同词元之间是相互独立的。事实上&#xff0c;one-hot向量之间都是相互正交的。对于单词而言…...

STL-vector的使用

1.STL-vector 向量是可以改变其大小的线性序列容器。向量使用连续的空间存储元素&#xff0c;表明向量可以像数组通过下标来访问元素&#xff0c;但是向量的大小可以动态变化。向量的容量可能大于其元素需要的实际容量&#xff0c;向量通过消耗更多的内存来换取存储管理效率。…...

MySQL深入

体系结构 连接层&#xff1a;主要处理客户端的连接进行授权认证、校验权限等相关操作 服务层&#xff1a;如sql的接口、解析、优化在这里完成&#xff0c;所有跨存储引擎的操作在这里完成 引擎层&#xff1a;索引是在存储引擎层实现的&#xff0c;所以不同的存储引擎他的索引…...

为什么LoRA在目标检测方向不奏效?

最近在思考,为啥目标检测方向没有出现LORA的相关用法,搜索到了一篇文章,挺有深度的。 Why LoRA Struggles with Object Detection (and Why I Learned This the Hard Way) 链接:https://medium.com/predict/why-lora-struggles-with-object-detection-and-why-i-learned-…...

Vue面试常考内容[从宏观到微观]

以下是Vue面试常考内容的系统性解析,从框架设计思想到源码实现细节,结合最新技术动态(截至2025年4月)整理而成: 一、宏观层面:Vue设计哲学与框架定位 渐进式框架核心 • 分层可扩展架构:从视图层核心逐步集成路由、状态管理等能力,支持"按需取用"的渐进式开发…...