codevs 1376 帕秋莉•诺蕾姬
codevs 1376 帕秋莉•诺蕾姬
题目描述 Description
在幻想乡,帕秋莉•诺蕾姬是以宅在图书馆闻名的魔法使。这一天帕秋莉又在考虑如何加
强魔法咒语的威力。帕秋莉的魔法咒语是一个仅有大写字母组成的字符串,我们考虑
从’A’到’Z’分别表示0到25的数字,于是这个魔法咒语就可以看作一个26进制数
。帕秋莉通过研究发现,如果一个魔法咒语所代表的数能够整除10进制数M的话,就能
够发挥最大的威力。若当前的魔法咒语并不能整除M,帕秋莉只会将其中两个字符的位
置交换,尽量让它能够被M整除,当然由于某些咒语比较特殊,无论怎么改变都不能达
到这个目的。请你计算出她能否只交换两个字符就让当前咒语被M整除。(首位
的’A’为前导0) 第1行:1个字符串,长度不超过L。 第2行:1个正整数,M 第1行:
用空格隔开的2个整数,输出时先输位置靠前的那个。 如果存在多种交换方法,输出字
典序最小的,比如1 3和1 5都可以达到目的,就输出1 3;1 3和2 4都行时也输出1 3。
注意字符串下标从左到右依次为1到L开始。如果初始魔法咒语已经能够整除M,输出”0
0”;若无论如何也不能到达目的输出”-1 -1”。 PATCHOULI 16 4 9 对于30%的数
据:1 <= L <= 10, 1 <= M <= 100 对于50%的数据:除前面30%外,1 <= L <=
500, M = 5或25或26 对于100%的数据:1 <= L <= 2,000, 1 <= M <= 200,000
输入描述 Input Description
第1行:1个字符串,长度不超过L。 第2行:1个正整数,M
输出描述 Output Description
第1行:用空格隔开的2个整数,输出时先输位置靠前的那个。 如果存在多种交换方法,输出字典序最小的,比如1 3和1 5都可以达到目的,就输出1 3;1 3和2 4都行时也输出1 3。注意字符串下标从左到右依次为1到L开始。如果初始魔法咒语已经能够整除M,输出”00”;若无论如何也不能到达目的输出”-1-1”。
样例输入 Sample Input
PATCHOULI 16
样例输出 Sample Output
4 9
数据范围及提示 Data Size & Hint
对于30%的数据:1 <= L <= 10, 1 <= M <= 100 对于50%的数据:除前面30%外,1 <= L <= 500, M = 5或25或26 对于100%的数据:1 <= L <= 2,000, 1 <= M <= 200,000
思路:直接将26进制数暴力转成10进制数的话肯定是不可行的,所以我们可以考虑每次在转化的时候就 %m,并不会影响最终答案。交换的话从小到大枚举每两个数交换一下位置,满足条件输出就好了。
题解:
#include<iostream>
#include<cstdio>
using namespace std;
int a[10005];
int main()
{string x;cin>>x;int l=x.length();int sum=0,m;a[l-1]=1;scanf("%d",&m);for(int i=l-1;i>=0;i--){sum=((a[i]*(x[i]-'A')%m)+(sum%m))%m;a[i-1]=a[i]*26%m; }if(sum==0){printf("0 0");return 0;}for(int i=0;i<l;i++){for(int j=i+1;j<l;j++){if(((sum+(x[i]-'A')*(a[j]-a[i]+m))%m+(x[j]-'A')*(a[i]-a[j]+m)%m)%m==0)//加m是防止减出负数 {printf("%d %d",i+1,j+1);return 0;}}}printf("-1 -1");return 0;
}
转载于:https://www.cnblogs.com/-feather/p/7779930.html
codevs 1376 帕秋莉•诺蕾姬相关推荐
- 【codevs 1376】帕秋莉·诺蕾姬
37大天使震撼来袭 新服火爆开启!!! 不动的大图书馆 题目描述 在幻想乡,帕秋莉•诺蕾姬是以宅在图书馆闻名的魔法使.这一天帕秋莉又在考虑如何加强魔法咒语的威力.帕秋莉的魔法咒语是一个仅有大写字母组成 ...
- 【CS 1376】帕秋莉•诺蕾姬(Hash)
[东方人物出没]qwq,hash可以搞得题目,对于换位没搞清楚,搞得真头疼qwq 题目描述 Description 在幻想乡,帕秋莉•诺蕾姬是以宅在图书馆闻名的魔法使.这一天帕秋莉又在考虑如何加强魔法 ...
- 帕秋莉·诺蕾姬 (Standard IO)
Description 在幻想乡,帕秋莉·诺蕾姬是以宅在图书馆闻名的魔法使.这一天帕秋莉又在考虑如何加强魔法咒语的威力.帕秋莉的魔法咒语是一个仅有大写字母组成的字符串,我们考虑从'A'到'Z'分别表示 ...
- 2554. 【NOIP2011模拟9.7】帕秋莉·诺蕾姬 (Standard IO)
2554. [NOIP2011模拟9.7]帕秋莉·诺蕾姬 (Standard IO) Description 在幻想乡,帕秋莉·诺蕾姬是以宅在图书馆闻名的魔法使.这一天帕秋莉又在考虑如何加强魔法咒语的 ...
- cogs 998. [東方S2] 帕秋莉·诺蕾姬
二次联通门 : cogs 998. [東方S2] 帕秋莉·诺蕾姬 交上去后发现自己没上榜 就想着加点黑科技 把循环展开一下 结果WA了.. 万恶的姆Q /*cogs 998. [東方S2] 帕秋莉·诺 ...
- codevs1376帕秋莉•诺蕾姬 东方幻想乡系列模拟赛Stage 2[三星]
题目很老但是很经典~ 题目链接:-------------->题目地址 题目描述 Description 在幻想乡,帕秋莉•诺蕾姬是以宅在图书馆闻名的魔法使.这一天帕秋莉又在考虑如何加强魔法咒语 ...
- 【Codevs 1376】帕秋莉•诺蕾姬
http://codevs.cn/problem/1376/ 枚举修改哪两位,将sum减去之前位置的数+交换之后 %m==0即可 预处理26的次方+O(n^2) // <1376.cpp> ...
- JZOJ8.14(C组)帕秋莉·诺雷姬
题目: 在幻想乡,帕秋莉·诺蕾姬是以宅在图书馆闻名的魔法使.这一天帕秋莉又在考虑如何加强魔法咒语的威力.帕秋莉的魔法咒语是一个仅有大写字母组成的字符串,我们考虑从'A'到'Z'分别表示0到25的数字, ...
- [COGS2189][HZOI 2015]帕秋莉的超级多项式-NTT-多项式求逆-多项式求ln-多项式开方-多项式求exp-多项式快速幂
帕秋莉的超级多项式 [题目描述] 在幻想乡,帕秋莉·诺蕾姬(パチュリー·ノーレッジ)是以宅在图书馆闻名的魔法使. 其语文,数学,英语,物理,化学,生物,政治,历史,地理,哲♂学,无所不通晓. 今天,她 ...
最新文章
- Ubuntu16.04 python2.7升级python3.5
- 作用域安全的构造函数
- STM32系列--初识寄存器1
- Google的AI模型是如何做A/B Test的
- python与shell的3种交互方式介绍
- git-基本操作的小结
- 新东方年会diss老板节目爆红!俞敏洪:奖励12万
- Serializable作用
- Android学习资源网站 1
- Python 植物大战僵尸代码实现
- TcaplusDB X 光与夜之恋|春暖花开之际与你相遇
- HMC5883L指南针罗盘模块连接arduino使用的注意事项
- Leetcode应该怎么刷?【笔试】
- 机器学习岗位面试总结:简历应该关注的5个重点
- 个人wiki搭建资料整理
- 最新阿里云短信服务接口类【亲测成功】
- Java RestTemplate中几种常见的请求方式
- 【FPGA】串口以命令控制温度采集
- cmd、conhost退居二线,Win 11将设置默认终端
- 《Planning Algorithm》 第三章:几何表示与变换