评测传送门

Description:

  Valentino 函数的定义:
  对于一个由数字和小写字母组成的字符串 S,两个整数 K,M,将 S 视为一个 P 进制数,定义:
  Valentino(S, K, M) = KS mod M
  对于一个字串对应的进制 P,现作出如下规定:
  S = “12445”,你应该将它视为一个 6 进制数:124456 = 190110 。
  S = “c0ab5h”,你应该将它视为一个 18 进制数:c0ab5h18 = 2273680710 。
  即,对于一个由数字和小写字母组成的字符串 S,将’a’视为 10,’b’视为 11,...,’z’视为 35,你应该找到最小的 P,使得 S 是一个合法的 P 进制数。
  现在,Valentino 手上有若干个由数字和小写字母组成的字符串。他选定了两个数 K,M,想求出每个字符串的 Valentino 函数的十进制表示。但是由于字符串实在太长了,Valentino 实在算不过来,所以他只好求助于你。

Input
  第 1 行为两个正整数 K, M。
  接下来每行一个由数字和小写字母组成的字符串,代表你要处理的字符串。

Output
  每行一个整数,第 i 行输出第 i 个字符串的 Valentino 函数值,以十进制表示。

正解:

我觉得solution讲得超级清楚啊(图点开看还是挺清楚的)

但是要补充解释一个地方:x的含义是 kpi,pi是p的i次方

CODE:

 #include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#define R register
#define go(i,a,b) for(R int i=a;i<=b;i++)
#define yes(i,a,b) for(R int i=a;i>=b;i--)
#define M 100000+1
#define ll long long
using namespace std;
ll k,m,n,x,len,a[M],as;
string s;
ll ksm(ll x,ll y)
{
ll ans=;
while(y)
{
if(y&) ans=ans*x%m;
x=x*x%m;y>>=;
}
return ans%m;
}
int main()
{
scanf("%lld%lld",&k,&m);
while(cin>>s)
{
len=s.length()-;n=;as=;x=k;
go(i,,len)
{
if(s[i]>=''&&s[i]<='') a[i]=s[i]-'';
else a[i]=s[i]-'a'+;
n=max(n,a[i]);
}n+=;
yes(i,len,)
{
as=as*ksm(x,a[i])%m;
x=ksm(x,n);
}
printf("%lld\n",as);
}
return ;
}

最新文章

  1. WindowManager 实现悬浮窗 详解
  2. linux screen 命令详解[转]
  3. 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【九】——API变了,客户端怎么办?
  4. Java开发环境的配置
  5. curl+ post/get 提交
  6. Android判断网络状态
  7. 在Windows7上搭建Cocos2d-x 3.2alpha0开发环境
  8. JavaScript---网络编程(2)-函数与数组
  9. Oracle的闪回技术--闪回错误的DML操作
  10. 【推荐】PHP中格式化时间函数date与gmdate的区别 | 修改PHP的默认时区
  11. 用webstorm自动编译less产出css和sourcemap
  12. hive优化之——控制hive任务中的map数和reduce数
  13. JQuery实战总结三 标签页效果图实现
  14. SpringBoot之处理JSON数据举例
  15. 【转】Android,iOS打开手机QQ与指定用户聊天界面
  16. iNotify.js通知JS 实现浏览器的 title 闪烁、滚动、声音提示、chrome、Firefox、Safari等系统通知。
  17. 【第四十章】Spring Boot 自定义拦截器
  18. 代码UITableView点击cell跳转
  19. Java用JSONObject-lib来解析json串
  20. java学习——类之YuanZhu

热门文章

  1. LR_问题_虚拟用户以进程和线程模式运行的区别
  2. iOS 数组和字典排序
  3. C++ STL 常用遍历算法
  4. 洛谷 P2598 [ZJOI2009]狼和羊的故事 解题报告
  5. 布隆过滤器 Bloom Filter
  6. bzoj 1798 线段树
  7. Java入门:创建多个对象
  8. 利用VisualStudio单元测试框架举一个简单的单元测试例子
  9. Lvs+Keepalived实现MySQL高可用
  10. 转:iOS绘制一个UIView