NYOJ 2356 哈希计划(模拟)
来源:互联网 发布:网络彩票赌博怎么举报 编辑:程序博客网 时间:2024/06/05 14:48
题目链接:
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
输出
输出仅一个数字,代表答案
样例输入
asdasasadf
样例输出
261839
提示
来源
河南省多校脸萌第六场
解题思路:
仔细按照题目模拟即可。
AC代码:
1 #include<stdio.h> 2 #include<string.h> 3 char a[10010]; 4 int main() 5 { 6 int b[26],i,l,m,j; 7 long long ans1,ans2; 8 while(scanf("%s",a) != EOF) 9 {10 l=strlen(a);11 12 memset(b,0,sizeof(b));13 for(i=0;i<l;i++)14 b[a[i]-'a']++;15 for(j=0,m=0,i=0;i<26;i++)16 {17 if(b[i] > j)18 {19 j=b[i];20 m=i;//找到出现次数最多的字母 21 }22 }23 24 ans1 = a[0]-'a'+97;25 for(i=1;i<l;i++)//按题意模拟 26 {27 ans1 = (a[i-1]-'a'+97) ^ (a[i]-'a'+97);28 if(i==1)29 ans2 = ans1;30 else31 {32 ans2 *= ans1;33 ans2 %= (m+97);34 }35 }36 printf("%lld\n",ans2);37 }38 return 0;39 }
阅读全文
0 0
- NYOJ 2356 哈希计划(模拟)
- NYOJ 2356 哈希计划(模拟)
- NYOJ 2356: 哈希计划【模拟】
- NYOJ 2356: 哈希计划【模拟】 D
- (模拟赛)阅读计划
- NYOJ-93 汉诺塔(三)【模拟】
- NYOJ练习题 下三角矩形 (模拟)
- nyoj 弹球II(数学 模拟)
- NYOJ-305 表达式求值(模拟)
- nyoj--767--因子和(模拟)
- nyoj--92--图像有用区域(模拟)
- nyoj 309 乘雪橇(模拟)
- nyoj 1092数字分割(模拟)
- NYOJ-21-三个水杯(BFS 模拟)
- noip2004 津津的储蓄计划 (模拟)
- NYOJ-421 打扑克【模拟】
- NYOJ 2【栈模拟】
- NYOJ 220 (红黑树--模拟)
- leetcode
- MySQL 数据库设计总结
- LeetCode-4-Median-of-Two-Sorted-Arrays 递归求两有序数组第k小
- [Noip2016]换教室 解题报告
- 【Linux学习笔记】25:用户自定义变量
- NYOJ 2356 哈希计划(模拟)
- HUD-1002(大位数加法)
- jeecms系统使用介绍
- UVALive 4764 Bing it
- ConstraintLayout can not resolve symbol 'parent'
- 数学建模(7)——蒙特卡罗算法(Monte Carlo)
- linux-mysql-5.7.18-安装步骤
- 【MySQL】批量数据循环插入
- 通过Uri跳转Activity(当然对于WebView中的网页同样适用)