题目大意:

对于 f[i] = (f[i-1]*a + b) mod 10001,已知f[1],f[3]……f[n*2-1],求f[2],f[4]……f[n*2]

题目思路:

很明显,我们需要计算a,b的值。很容易得到:(a+1)*b + 10001*(-k) = f[3]-a*a*f[1]

利用扩展欧几里得计算:(a+1)*b0 + 10001*(-k0) = gcd(a+1,10001)

联立方程有:b = b0*(f[3]-a*a*f[1])/gcd(a+1,10001)

将b带入f[],验证是否成立即可

//#pragma GCC optimize(2)
#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<stdlib.h>
#include<iostream>
#include<stack>
#include<vector>
#include<math.h>
using namespace std;
#define LL long long
#define INF 0x3f3f3f3fLL p[205];bool Judge(LL a,LL b,LL T)
{LL pre = p[1];LL now;for(int i=2;i<=2*T;i++){now = (pre*a + b) % 10001;if(i&1 && now != p[i])return false;pre = now;}return true;
}void Exgcd(LL a,LL b,LL &gcd,LL &x,LL &y)
{if(!b){gcd = a;x = 1;y = 0;}else{Exgcd(b,a%b,gcd,y,x);y -= x*(a/b);}
}int main()
{LL T;while(cin >> T){for(int i=1;i<=2*T;i+=2)cin >> p[i];for(int a=0;;a++){LL k,b,gcd,c=p[3]-a*a*p[1];Exgcd(a+1,10001,gcd,b,k);if(c%gcd !=0 ) continue;LL temp = c/gcd;b *= temp;if(Judge(a,b,T)){for(int i=2;i<=2*T;i+=2)cout << (a*p[i-1]+b)%10001 << endl;break;}}}return 0;
}

View Code

转载于:https://www.cnblogs.com/alan-W/p/10803178.html

Disgruntled Judge UVA - 12169相关推荐

  1. UVa 12169 - Disgruntled Judge(拓展欧几里德)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  2. UVA 12169 Disgruntled Judge

    我该怎么说这道题呢...说简单其实也简单,就枚举模拟,开始卡了好久,今天看到这题没a又写了遍,看似会超时的代码交上去a了,果然实践是检验真理的唯一标准... 1 #include <iostre ...

  3. Hangman Judge UVA - 489

    https://vjudge.net/problem/UVA-489 也是用来练自顶向下编程,练习用函数来解题的,还是先定好思路,写大体框架,再扩展每个函数的功能. 不难,具体代码里有注解. #inc ...

  4. Hangman Judge, UVa 489

    刽子手游戏其实是一款猜单词游戏,如图4- 1所示.游戏规则是这样的:计算机想一个单词 让你猜,你每次可以猜一个字母.如果单词里有 那个字母,所有该字母会显示出来:如果没有那 个字母,则计算机会在一幅& ...

  5. C++ 刽子手游戏(Hangman Judge, UVa 489)(算法竞赛入门经典例题4-2)

    题目:刽子手游戏是一个简单的猜单词游戏,每次可以猜一个字母,如果单词内有这个字母,此单词内所有该字母都会显示,如果没有该字母,则记一笔错误,若满7笔错误,则输掉()猜已经猜出的单词也算错误).本题编写 ...

  6. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  7. UVA - 489 ​​​​​​​Hangman Judge

    Hangman Judge UVA - 489 题目传送门 PS.此题Udebug有毒,即使100组样例全过,但还是WA,心塞. 这是我自己的代码,悲催的WA了 #include <cstdio ...

  8. [紫书CH0] 《算法竞赛入门经典》(第2版) 题解目录

    紫书题解 本着仅仅门外看看风景的初心,却 不慎 被其内壮丽美景所深深吸引.将会持续的画上一段时间对紫书进行系统性的学习,相关的 UVa 经典习题会道道完成并贴出题解供大家学习交流.也算是记录我曾经来过 ...

  9. 十个提高编码技能的诀窍,你掌握了几个?

    译者注:此文主要介绍一些提高编程技巧的小方法或者说是技能,嗯,我比较推崇第一条-..多练,熟能生巧. 你想成为一名程序员,并且正在为之奋斗,那么你努力的方式,比如做事方法.思维习惯都将会影响你会成为怎 ...

最新文章

  1. es6结构赋值--数组
  2. python游戏编程入门-python游戏编程入门
  3. redis占用内存过低_使用多种数据结构优化Redis 内存占用
  4. 小学计算机应用到英语课教案,信息技术与PEP小学英语三年级学科整合交流课例...
  5. 关于MySQL 8.0
  6. 【MySQL】数据库死锁查询及处理
  7. ASP.NET获取文件名,后缀名
  8. python:单例模式--使用__new__(cls)实现
  9. 原 hibernate与mysql字段类型对应关系
  10. 2018年4月计算机组成原理试题,全国2018年4月自考(02318)计算机组成原理试题及答案.pdf...
  11. [推荐电子图书]-[jquery视频教程 初级+高级][25课程]
  12. Neo4j简单构建知识图谱实例
  13. mysql oracle视频网盘_动力节点MySQL数据库视频 百度云 网盘 下载
  14. C语言--指针实现字符串逆序输出
  15. css实现烟雾效果(css制作汽车尾气排放效果)
  16. strcpy会覆盖原来的吗_你真的会拍合影照吗?原来高大上的合影照这样拍
  17. 专访北京中医药大学副教授郭凤英:产学合作,为新医科培养复合型人才
  18. 【谷歌浏览器实用技巧】谷歌浏览器的大量书签丢失的找回方法,亲测有用!!
  19. 【模拟·习题】[USACO18JAN]Lifeguards S
  20. 【u-boot】uboot代码简要分析 (u-boot 移植)

热门文章

  1. 使用centos7构建本地git服务器
  2. 静态自动检查代码缺陷与隐患
  3. 和我一起学《HTTP权威指南》——安全HTTP与HTTPS
  4. openstack 使用集锦
  5. 在.NET 2.0正式版中开发无刷新页面
  6. 近似推断包括采样和变分两种方法,前者是通过_____进行近似,后者是通过_______进行近似。
  7. How many levels are there at the in the digital transformation?
  8. windows编程,消息函数中拦截消息的问题
  9. Mozilla “Common Voice” 开源语音识别项目
  10. javax.management.InstanceNotFoundException: com.alibaba.druid:type=DruidStatService ERROR com.aliba