当前位置: 首页 > news >正文

UVa12169 Disgruntled Judge

例题10-2 不爽的 裁判( Disgruntled Judge, NWERC 2008, UVa12169)

有个裁判出的题太难, 总是没人做, 所以他很不爽。 有一次他终于忍不住了 , 心
想: “反正我的题没人做, 我干嘛要费那么多心思出题? 不如就输入一个随机数, 输出一个
随机数吧。 ”
于是他找了 3个整数x1、 ab, 然后按照递推公式xi=(axi-1+b) mod 10001计算出了 一个长
度为 2T的数列, 其中 T是测试数据的组数。 然后, 他把Tx1, x3, … , x2T-1写到输入文件中, x2,
x4,…, x2T写到了 输出文件中。
你的任务就是解决这个疯狂的题目 : 输入T, x1, x3, … , x2T-1, 输出 x2, x4, … , x2T。 输入保
T≤100, 且输入的所有x值为 0~ 10000的整数。 如果有多种可能的输出, 任意输出一个即可。

分析

如果知道了 a, 就可以计算出 x2, 进而根据x3=(ax2+b) mod 10001算出 b。 有了 x1、 ab
就可以在O(T)时间内计算出整个序列了 。 如果在计算过程中发现和输入矛盾, 则这个a是非
法的。 由于a是0~ 10000的整数( 因为递推公式对10001取模) , 即使枚举所有的a, 时间效
率也足够高。

 

代码

 

 1 #include<iostream>
 2 using namespace std;
 3 
 4 const int maxn = 100*2 + 5;
 5 const int M = 10001;
 6 int T, x[maxn];
 7 
 8 void solve() {
 9   ///枚举a,b
10   for(int a = 0; a < M; a++) 
11     for(int b = 0; b < M; b++) {
12       bool ok = true;
13       /**
14         根据当前的a,b 计算X(2T)
15         由X(2T-1)判断用当前a,b算得的X(2T)是否正确
16         正确,退出solve()
17         错误,继续枚举a,b
18       */
19       for(int i = 2; i <= T*2; i += 2) {
20         x[i] = (a*x[i-1] + b) % M;
21         if(i+1 <= T*2 && x[i+1] != (a*x[i] + b) % M) { ok = false; break; }
22       }
23       if(ok) return;
24     }
25 }
26 
27 int main () {
28   while(cin >> T) {
29     for(int i = 1; i <= T*2-1; i += 2) cin >> x[i];
30     solve();
31     for(int i = 2; i <= T*2; i += 2) cout << x[i] << "\n";
32   }
33   return 0;
34 }

 

转载于:https://www.cnblogs.com/yfs123456/p/5481139.html

相关文章:

  • 【原创】MySQL Proxy - Administration Interface
  • 详解6大安全场景:移动app安全、防DDoS、防入侵、数据加密、业务反欺诈、内容安全...
  • linux ulimit 的设置
  • 二次登陆验证
  • 电脑配置
  • 解决spring jpa中配置文件报'jpa:repositories'的问题
  • 启用约束时使用exceptions表来跟踪不符合约束的数据并修正
  • Combination Sum系列问题
  • js中容易被忽视的事件问题总结
  • Web Service 接口安全与解决方案
  • B树、B-树、B+树、B*树的定义和区分
  • 史上最全大数据学习资源整理(1)
  • Hive操作表部分总结
  • 电邮欺诈需重视 TurboMail邮件系统保护您
  • IOS-利用AFNetworking监听网络状态
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • AHK 中 = 和 == 等比较运算符的用法
  • echarts的各种常用效果展示
  • ES6核心特性
  • OSS Web直传 (文件图片)
  • python学习笔记-类对象的信息
  • Redux 中间件分析
  • vue 配置sass、scss全局变量
  • 程序员该如何有效的找工作?
  • 翻译--Thinking in React
  • 高程读书笔记 第六章 面向对象程序设计
  • 记一次和乔布斯合作最难忘的经历
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 数据结构java版之冒泡排序及优化
  • 微服务框架lagom
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 移动端高清、多屏适配方案
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (ros//EnvironmentVariables)ros环境变量
  • (Ruby)Ubuntu12.04安装Rails环境
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (四)Android布局类型(线性布局LinearLayout)
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)创业家杂志:UCWEB天使第一步
  • (转)重识new
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • . Flume面试题
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • @Autowired和@Resource的区别
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • []指针
  • [20150321]索引空块的问题.txt
  • [22]. 括号生成
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)