NYOJ 2356 哈希计划(模拟)
题目链接:
http://acm.nyist.me/JudgeOnline/problem.php?id=2356
题目描述
众所周知,LLM的算法之所以菜,就是因为成天打游戏,最近LLM突然想玩《金庸群侠传X》,结果进去后各种被虐,LLM就开始研究这个游戏的代码,顺便还学会了一点点点点lua语言,然后就开始了伟大的改游戏代码之旅,然后LLM发现自己too young了,这个游戏把所有的文本都进行了哈希,如果自己改了代码或者剧情文本的话它哈希出来的值就会和原来的哈希值不一样......然后游戏就会打不开.....,现在LLM发现了文本的哈希函数,要求你写个程序,功能为:
输入一段字符串,输出一个哈希值
为了简化这个问题,我们假设游戏的哈希方法是:
从第二个字符开始每个字符都对应其ACISS码的值,然后异或上一个字符的ACISS码值,然后所有的异或值相乘取余字符串中出现最多的那个字符的ACISS码值(如果有多个,则选取ACISS码最小的那个)
输入
每个测试文件不多于100组测试样例
输入包含一个只有小写字母的字符串s,
2<=s<=10000
输出
输出仅一个数字,代表答案
样例输入
asd
as
asadf
样例输出
26
18
39
提示
来源
解题思路:
仔细按照题目模拟即可。
AC代码:
#include<stdio.h>
#include<string.h>
char a[];
int main()
{
int b[],i,l,m,j;
long long ans1,ans2;
while(scanf("%s",a) != EOF)
{
l=strlen(a); memset(b,,sizeof(b));
for(i=;i<l;i++)
b[a[i]-'a']++;
for(j=,m=,i=;i<;i++)
{
if(b[i] > j)
{
j=b[i];
m=i;//找到出现次数最多的字母
}
} ans1 = a[]-'a'+;
for(i=;i<l;i++)//按题意模拟
{
ans1 = (a[i-]-'a'+) ^ (a[i]-'a'+);
if(i==)
ans2 = ans1;
else
{
ans2 *= ans1;
ans2 %= (m+);
}
}
printf("%lld\n",ans2);
}
return ;
}
NYOJ 2356 哈希计划(模拟)的更多相关文章
- 【bzoj3291】Alice与能源计划 模拟费用流+二分图最大匹配
题目描述 在梦境中,Alice来到了火星.不知为何,转眼间Alice被任命为火星能源部长,并立刻面临着一个严峻的考验. 为了方便,我们可以将火星抽象成平面,并建立平面直角坐标系.火星上一共有N个居民点 ...
- NYOJ 2 括号配对问题 (模拟)
题目链接 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=100),表示有N组测试数据.后面的N行输入多组输入数据,每组输入数据都是一个字符串S ...
- nyoj 138 找球号(二)(哈希)
题目:nyoj——138 /*** 哈希求解...采用链表保存 插入时,可以去除重复 查找 找到该组,然后在改组的查找 当这个组不存在时或是没有找到时是 NO 其他是YES 1e6+1 时间最短 */ ...
- Android编程示例:创建机场计划模拟器应用程序
在本文中,我们将演示如何使用Android Studio和Java编程语言创建一个示例Android应用程序,从“临时”实现高级响应用户界面的功能.本文中讨论的应用程序将实现机场航班时刻表模拟的功能. ...
- AcWing 840. 模拟散列表
拉链法 #include<cstring> #include<iostream> using namespace std ; ; int h[N],e[N],ne[N],idx ...
- mysql知识点归纳-执行计划篇
愿历尽千帆,归来仍是少年 缘由: 优化sql,顾此记录一下,以便温习之用. 前置: sql执行过程:客户端 -> 连接器 -> 分析器 (或查询缓存 - > end) -> 优 ...
- $NOIp$做题记录
虽然去年做了挺多了也写了篇一句话题解了但一年过去也忘得差不多了$kk$ 所以重新来整理下$kk$ $2018(4/6$ [X]积木大赛 大概讲下$O(n)$的数学方法. 我是从分治类比来的$QwQ$. ...
- NES模拟器开发-CPU笔记
我的项目XNES已经开始动手编码了,目前的进度大概是cpu的模拟完成了大概10~20%左右.简单记录一下CPU模拟过程中遇到的问题和思考. 原理: cpu模拟实际就是模拟cpu处理opcode的过程, ...
- POJ1002 487-3279
Description 企业喜欢用容易被记住的电话号码.让电话号码容易被记住的一个办法是将它写成一个容易记住的单词或者短语.例如,你需要给滑铁卢大学打电话时,可以拨打TUT-GLOP.有时,只将电话号 ...
随机推荐
- SpringMVC配置双数据源,一个java项目同时连接两个数据库
数据源在配置文件中的配置 请点击---> java架构师项目实战,高并发集群分布式,大数据高可用,视频教程 <pre name="code" class=" ...
- 从底层角度看ASP.NET-A low-level Look at the ASP.NET...
从更低的角度 这篇文章在一个底层的角度来关注一个web请求怎样到达asp.net框架,从web服务器,通过ISAPI.看看这些后面发生了什么,让我们停止对asp.net的黑箱猜想.ASP.NET是一个 ...
- MySQL查询相关(初级)(全文重点)
where 是约束条件 先找到表 from t1 where 条件 : 指的是把表里的数据,一条一条的记录取出来 然后 group by 分组, having 是过滤条件 指记录已经出来 聚合 cou ...
- GIT命令一页纸
,配置用户名和邮箱 $ git config --global user.name "Your Name" $ git config --global user.email &qu ...
- strace命令详解
转自: http://www.cnblogs.com/ahuo/p/4150623.html 备注: 这篇博文学到的不仅仅是 strace 这个命令,还有前辈的排错思路,致敬! strace 命令是一 ...
- 简易排水简车的制作 TurnipBit 系列教程
准备工作 ü TurnipBit 开发板 1块 ü 下载数据线 1条 ü 微型步进电机(28BYJ-48) 1个 ü 步进电机驱动板(ULN2003APG) 1块 ü TurnipBit 扩展板 ...
- 【转】 Git——如何将本地项目提交至远程仓库
1.(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 git init 2.把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点 ...
- [转]OpenLiveWriter 代码插件
插件地址链接:http://pan.baidu.com/s/1jHFDtbS 密码:ax31 将文件解压,放在路径下面 重启应用后,如图
- java中重载一定在一个类里面吗?
虽然这些概念在翻译成中文的过程中,有很多不同的翻译方式但本质上只有两种说法,就是Override和Overload其中,Overload一般都被翻译成重载而Override的翻译就乱七八糟了,所谓覆盖 ...
- java web 之 listen 与 filter
一.Listener监听器 Javaweb开发中的监听器,是用于监听web常见对象 HttpServletRequest HttpSession ServletContext 监听它们的创建与销毁.属 ...