枚举 + exgcd
题意:已知xi=(a*xi-1+b) mod 10001,且告诉你x1,x3.........x2*t-1,让你求出其偶数列
思路分析 : 题目所要求的的是对 10001 取余,由模运算的性质可知,a 在经过取模后一定是 0 - 10000 范围内的一个数,那么我们就可以枚举 a

在利用 x2, x3 的式子代入化简,最终得到的式子是类似 exgcd 的,直接求就可以。
代码示例 :
#define ll long long
const ll maxn = 1e6+5;
const ll mod = 10001;
const double eps = 1e-9;
const double pi = acos(-1.0);
const ll inf = 0x3f3f3f3f; ll n;
ll pre[105];
ll mid[205]; void exgcd(ll a, ll b, ll &g, ll &x, ll &y){
if (b == 0){ g = a; x = 1; y = 0;}
else {exgcd(b, a%b, g, y, x); y -= x*(a/b);}
} int main() {
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
cin >> n;
for(ll i = 1; i <= n; i++){
scanf("%lld", &pre[i]);
}
ll g, b, k;
for(ll i = 0; i <= 10000; i++){
ll f = (pre[2]-i*i*pre[1]); exgcd(mod, i+1, g, k, b);
if (f % g) continue;
b = b*(f/g)%mod; mid[1] = pre[1];
for(ll j = 2; j <= 2*n; j++){
mid[j] = (i*mid[j-1]+b+mod)%mod;
}
ll sign = 0;
for(ll j = 1; j <= 2*n; j += 2){
if (mid[j] != pre[(j+1)/2]){
sign = 1; break;
}
}
if (!sign){
break;
}
}
for(ll j = 2; j <= 2*n; j += 2){
printf("%lld\n", mid[j]);
}
return 0;
}
枚举 + exgcd的更多相关文章
- 【NOI2002】
A 银河英雄传说 带权并查集 B 贪吃的九头龙 树形dp f[x][j][0] = min(f[x][j][0], min(f[vv][t][0] + tmp[j - t][0] + ww * (m ...
- qscoj Round 1(div 2)
卿学姐OJ……很休闲啊……? A 分析:枚举/exgcd B 分析:栈模拟 弄个栈模拟配对过程,将能够配对的()位置染色,最后最长的一段染色区间就是答案 C 分析:dp f[i][j]表示前i个物品, ...
- [NOI2002]荒岛野人(exgcd,枚举)
题目描述 克里特岛以野人群居而著称.岛上有排列成环行的M个山洞.这些山洞顺时针编号为1,2,…,M.岛上住着N个野人,一开始依次住在山洞C1,C2,…,CN中,以后每年,第i个野人会沿顺时针向前走Pi ...
- UVA 12169 Disgruntled Judge 枚举+扩展欧几里得
题目大意:有3个整数 x[1], a, b 满足递推式x[i]=(a*x[i-1]+b)mod 10001.由这个递推式计算出了长度为2T的数列,现在要求输入x[1],x[3],......x[2T- ...
- 【BZOJ2242】【SDoi2011】计算器 快速幂+EXGCD+BSGS
Description 你被要求设计一个计算器完成以下三项任务: 1.给定y,z,p,计算Y^Z Mod P 的值: 2.给定y,z,p,计算满足xy≡ Z ( mod P )的最小非负整数: 3.给 ...
- BZOJ-1407 Savage 枚举+拓展欧几里得(+中国剩余定理??)
zky学长实力ACM赛制测试,和 大新闻(YveH) 和 华莱士(hjxcpg) 组队...2h 10T,开始 分工我搞A,大新闻B,华莱士C,于是开搞: 然而第一题巨鬼畜,想了40min发现似乎不可 ...
- hdu2769:枚举+同余方程
题意:有一个随机数生成器 x[i+1]=(a*x[i]+b)%10001 已知 x1,x3,x5...求 x2,x4,x6...... x的个数为 2n (n<=10000) a,b也在 0 ...
- [SDOI2011]计算器(exgcd&BSGS)
k=1:裸的快速幂k=2:xy=z+kp,直接exgcd,这个可以不用解释了,不懂的同学可以看代码 k=3:裸的BSGS 重点是k=3(BSGS学习)ax=b(mod p)求解这个同余方程只能求gcd ...
- Codeforces 982E Billiard exgcd
Billiard 枚举终点, 对于每一个终点一共有四种周期的相遇方式, 枚举一下取最小的时间. #include<bits/stdc++.h> #define LL long long # ...
随机推荐
- html(二)登陆页面
今天开始正常上课学习HTML+CSS+JSP 嗯 前两个没讲直接上手! 老师也是很认同我们的呢~ 这是第一个案例 做一个登陆页面,并利用post提交表单 传值到另一个界面接收值. 1.设置值: &l ...
- jekyll 添加 Valine 评论
本文告诉大家如何在自己搭建的静态博客添加 Valine 评论.在这前,我基本都是使用 多说,但是多说gg啦,所以就在找一个可以替换的评论 本来 Disqus是很好的,但是在国内很难打开,所以我就需要一 ...
- 如何通过命令行 msbuild 编译项目
本文告诉大家如何通过 msbuild 编译一个项目,通过命令行编译可以输出更多的编译信息,可以用来调试自己写的编译相关方法,可以看到是哪个文件编译失败 在开始菜单可以找到 VisualStudio 的 ...
- 备战省赛组队训练赛第十四场(UPC)
codeforces:传送门 upc:传送门 外来题解: [1]:https://blog.csdn.net/ccsu_cat/article/details/86707446 [2]:https:/ ...
- 2019-8-31-dotnet-Framework-源代码-·-Ink
title author date CreateTime categories dotnet Framework 源代码 · Ink lindexi 2019-08-31 16:55:58 +0800 ...
- HDU - 1005 Number Sequence (矩阵快速幂)
A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mo ...
- Qt、Vc下用fopen打开中文名字的文件(转换成Unicode后,使用_wfopen函数)
在做一个Qt项目的时候,完成上传文件时,通过fopen打开文件用来读时发现fopen不能打开中文的文件名,自己在网查找一下,解决方法如下 参考:http://weidaohang.org/wanglu ...
- 设计模式2——状态模式State
参考链接: 设计模式之状态模式:https://www.cnblogs.com/haoerlv/p/7777789.html 设计模式系列之状态模式:https://www.jianshu.com/p ...
- linux下的一些命令的笔记
1.php的扩展是在 php/include/php/ext/下 2.在vi下查找关键字 在vi的命令模式下, 输入/,然后再输入关键字,回车就可以进行查找,按n则会跳到下一个关键字在的位置 3.ph ...
- HDU 2068 RPG错排 [错排公式]
1.题意:1到N的序列的排列中,元素位置与元素值相对应的情况(值为i的元素在某个排列中正好排在第i个位置)大于等于序列规模一半的情况,有多少个? 2.输入输出:每组数据一个数,N,规定输入以0结尾: ...