Google Kickstart2021 Round C Problem A

news/2024/12/22 12:49:15/文章来源:https://www.cnblogs.com/guiyou/p/18610871

数位DP
传送

思路

简单的数位DP,假定每一位的字符前面是最大的字符,对于每一位的字符,小于当前字符的数量是(s[i]-'a'),此时如果这样选择,那么后面的每一个到字符串中间的字符都可以任选m个,设第i个到中间字符的数量是y,所以此时可以构成的满足条件的字符是\((s[i]-'a')*m^y\)

但是我们忽略了一种情况,如果全选最大的字符,会不会超出字典序,这种情况需要特判

举个例子理解

bcaaa

b可以选择 a , b
/ / \ \
\(m^y\) a b c
/ \ / \
\(2*(m^y-1)\)

以此类推

CODE

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+10,mod=1e9+7;
#define ll long long 
int n,m;
ll p[maxn];
int t;
int id=0;
int main(){cin>>t;while(t--){cin>>n>>m; string s;cin>>s;p[0]=1;for(int i=1;i<=n;++i) p[i]=((ll)p[i-1]%mod*m%mod)%mod;//预处理m的次方ll res=0;int mid=(n+1)/2;for(int i=0;i<mid;++i){res=(res%mod+(ll)(s[i]-'a')*(p[mid-i-1])%mod)%mod;//对于每一位一定满足条件的方案数res%=mod;}int t=0;//判断由最后一位构成的字符串是否满足条件(字典序小于给定的字符串)for(int i=mid-1,j=n-i-1;i>=0;++j,--i){if(s[i]!=s[j]){if(s[i]<s[j]){t=1;}}break;}res=(res+t)%mod;cout<<"Case #"<<++id<<": "<<res<<endl;}return 0;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/856745.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在PbootCMS中增加对WebP和MOV文件类型的上传支持?

在PbootCMS中,默认情况下支持的上传文件类型可能不包括WebP和MOV。为了允许上传这些文件类型,你需要修改PbootCMS的配置文件和Ueditor编辑器的配置文件。以下是详细的步骤和说明: 1. 修改PbootCMS的配置文件 PbootCMS的上传配置位于 /config/config.php 文件中。你需要在这个…

易优CMS中的adv标签如何使用?

在易优CMS中,adv标签主要用于获取广告列表内容。这个标签非常灵活,可以通过设置不同的属性来控制广告的展示方式。基本的用法如下:html{eyou:adv pid=1 loop=3}<a href="{$field.links}"><img alt="{$field.title}" src="{$field.litpic}…

如何在易优CMS中输出单条广告的数据?

在易优CMS中,如果你希望输出单条广告的数据,可以使用ad标签。以下是一个具体的示例:{eyou:ad aid=37}<a href="{$field.links}" {$field.target}><img alt="{$field.title}" src="{$field.litpic}" /></a> {/eyou:ad}在这个…

2024-2025-1 20241314 《计算机基础与程序设计》第十三周学习总结

2024-2025-1 20241314 《计算机基础与程序设计》第十三周学习总结 作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 2024-2025-1计算机基础与程序设计第十三周作业这个作业的目标作业正文 正文教材学习内容总结 第12章:文件操作 1. 文件的…

修改网站合同附件模板,如何在网站后台或代码中修改合同附件模板

修改网站的合同附件模板可以确保合同的规范性和一致性。以下是具体步骤:登录后台:如果网站有后台管理系统,使用管理员账号登录。 在后台左侧菜单栏中选择“内容” -> “页面”或“文件管理”。 找到需要修改的合同附件模板,点击“编辑”。准备新模板:准备新的合同附件模…

在PbootCMS中,.htaccess文件的作用是什么?

在PbootCMS中,.htaccess文件主要用于配置Apache服务器的行为,特别是在启用URL重写功能时。以下是.htaccess文件的主要作用和详细解释:启用重写引擎:.htaccess文件中的RewriteEngine On指令启用了Apache的重写引擎。这是使用重写规则的前提条件。定义重写规则:通过RewriteR…

如何在PbootCMS中配置和使用API接口?

在PbootCMS中配置和使用API接口可以让你的应用程序(如小程序、公众号、APP等)远程调取系统数据。以下是详细的配置和使用步骤:后台配置API相关参数:登录PbootCMS后台管理系统。 导航到“系统设置”或“API设置”页面。 在API设置中,配置以下参数:AppID:为每个应用生成一…

FileZilla如何安装?附获取方式

前言 大家好,我是小徐啊。我们在开发java应用的时候,一般都是需要连接linux服务器的。而连接服务器,其中的一大工具就是连接上去之后传输和下载文件。这其中有很多工具,其中有一个是FileZilla,今天小徐就来介绍下如何安装FileZilla。文末附获取方式。 如何安装FileZilla 首…

DASCTF 2024最后一战-WEB-gxngxngxn

DASCTF 2024最后一战 const_python 很直白的pickle反序列化,直接打 import os import builtins import pickle import base64 import subprocess class A():def __reduce__(self):return (subprocess.check_output, (["cp","/flag","/app/app.py&quo…

银河麒麟系统图示化黑屏进不去输入不了任何字

【银河麒麟系统图示化黑屏进不去输入不了任何字】 **问题描述:黑屏logo之后黑屏浪潮售后麒麟售后 都是踢皮球的 没啥用 解决问题: 长篇短说现在不是 输入不了 任何东西吗 记住IP地址 然后拿一台笔记本 ssh连接到这台服务器 进去之后 输入命令 startx #前台运行(不推荐) noh…

jquery分页插件am-pagination.js

am-pagination.js是一款jquery分页插件。该jquery分页插件可以动态的在客户端页面渲染出分页条效果,并带有多个配置参数,以及Bootstrap和amazeui两种主题风格的分页条。在线预览 下载使用方法 在页面中引入am-pagination.css和jquery、am-pagination.js文件,Bootstrap和am…