压制组装机 微服务 db2 Font Awesome 后台管理界面 河南普通话考试报名官网 seo计费系统 list获取最后一个元素 pytorch安装教程 winbox使用教程 css选择器有几种 java获取字符串 mysql时间戳转换日期 普通话网上报名 python链接mysql数据库 python读取本地文件 java实现接口 java8函数式接口 java中tostring java获取 java文件路径 linux系统简介 超级煎蛋卷 abaqus最新版本 苹果手机老是自动重启 stl2stp js数组移除指定元素 整站系统 cfqq网吧任务 刷声望 js分页 1667 文明6万神殿 处理器虚拟化技术 万能播放器电脑版 视频添加水印 cdr字体变形 目标聚光灯 stata 红米3和红米3s的区别
当前位置: 首页 > 学习教程  > 编程语言

小 X 的密码破译

2020/10/16 17:54:04 文章标签:

小 X 的密码破译 这天小 Y 有事外出,小 X 又忘记带电脑了,于是想使用小 Y 的电脑。不幸的是,小 Y 设了密码, 密码提示是四个整数,且输错后密码和提示就会重新生成。 正当小 X 一筹莫展的时候,他打开小 Y 的…

小 X 的密码破译

这天小 Y 有事外出,小 X 又忘记带电脑了,于是想使用小 Y 的电脑。不幸的是,小 Y 设了密码,
密码提示是四个整数,且输错后密码和提示就会重新生成。
正当小 X 一筹莫展的时候,他打开小 Y 的抽屉,发现里面有一张小纸条,上面写着:“给出提示
n, a, b, c,令 di = (ai*i + bi + c) mod 11111111(1 ≤ i ≤ n),将序列 d 去除重复的数后从小到大排序得到
序列 e,设序列 e 有 m 个数,则密码为 (∑ iei) mod 11111111。”
小 X 十分激动,想立刻完成密码破译,希望你帮帮他。

Input

第一行包含四个整数 n, a, b, c。

Output

第一行包含一个整数,表示密码。

思路

直接模拟,注意:
1.桶不要用long long,要用bool 不然爆了跟我没关系
2.看清楚哪里应该%哪里不要%,到时候容易出现错误答案
code:

#include<iostream>
#include<map>
#include<cstdio>
using namespace std;
bool e[11111112];
int main()
{
 int n,a,b,c;
 cin>>n>>a>>b>>c;
 long long tot=1,s=0;
 for (int i=1;i<=n;i++)
 {
  long long y=i,x=y*y;
  int u=((a*x)%11111111+(b*y)%11111111+c)%11111111;
  e[u]=1;
 }
 for (int i=0;i<11111111;i++)
 {
  if (e[i]==1)
  {
   s=(s+i*tot)%11111111;
   tot++;
  }
 }
 cout<<s;return 0;
}

本文链接: http://www.dtmao.cc/news_show_300212.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?