UVA 12169 Disgruntled Judge (扩展欧几里得算法)

【数论】Disgruntled Judge, NWERC 2008, UVa12169 #include #define mod 10001 using namespace std; typedef long long LL; LL n,p[210]; void exgcd(LL a,LL b,LL& d,LL& x,LL& y){ if(!b) d=a,x=1,y=0; else exgcd(b,a%b,d,y,x),y-=x*(a/b); } int main() 阅读详情

UVA 12169 Disgruntled Judge (扩展欧几里得算法)

给出3个整数x1,a,b。根据递推公式xi=(a*xi-1+b) mod 10001来构造了长度为2T的数列。给出x1,x3,x5…x2T-1,求出x2,x4,x6…x2T.

根据题意,有:
x2=(ax1+b)%mod - - - 111
x3=(a
x2+b)%mod - - - 222

令n=mod
由111得x2和ax1+b同余,所以x2-(ax1+b)=ny1 - - -333
由222得x3和ax2+b同余,所以x3-(ax2+b)=ny2 - - -444
. . . . .
方法一:
由444-333得,ny+(a+1)x2=ax1+x3
通过枚举a的值,通过扩展欧几里得算法求出x2的值,然后再根据222式
x3=(ax2+b)%mod == ax2+b=k*mod+x3
求出b的值。

方法二:
由444+a×333得,ny+(a+1)b=x3-a2x1
通过枚举a的值,通过扩展欧几里得算法求出b的值
. . . . .
最后用O(T)的时间来计算序列,每计算出一个新式就进行校验,发现与原输入不符,则继续枚举a。

值得注意的是,用扩展欧几里得算法求出的x是方程ny+(a+1)x2=gcd(n,a+1)的解,需要通过再一次的变换来得到原方程的解。

在求出原方程的解后,通过解的线性变换 X=k*(n/gcd(n,a+1))+x2来得到处在[0,10000]区间内的解。

进行线性变换的方法可以通过取模进行。
X=(x%mod+mod)%mod,求得X属于[0,10000]

对于X=kmod+x 求X属于[0,mod]
X=x%mod 等价于 x=k
mod+X 等价于 X=kmod+x
由于x可能为负数,固等式变成
X=(x%mod+mod)%mod

对于第一种方法后来求出的b也要在进行计算序列之前通过
b=(b%n+n)%n的操作,将其变换到[0,10000]的同余类。
根据取模的性质,有xi=(axi-1+b)%n=(axi%n+b%n)%n不然可能会溢出。

代码如下:

#include<bits/stdc++.h>
using namespace std;
const int max_n=1e4+5;
int n;
int input_x[max_n];
int output_x[max_n];
int mod=10001;
typedef long long ll;
void gcd(int a,int b,int &d,ll &x,ll &y)
{
	if(!b){
		d=a;x=1;y=0;
	}
	else {
		gcd(b,a%b,d,y,x);y-=x*(a/b);
	}
}
int main(void)
{
//	freopen("out.txt","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	scanf("%d",&input_x[i]);
	for(int a=0;a<=10000;a++)
	{
		ll y,x;
		ll b;
		int d;//d=gcd(mod,a+1) 
		ll c=input_x[2]-(ll)a*a*input_x[1];
		gcd(mod,a+1,d,y,b);
		if(c%d!=0)continue;
		b*=(c/d);
//		b=(b%mod+mod)%mod;
		bool flag=true;
		for(int i=1;i<=n;i++)
		{
			output_x[i]=(int)(((ll)a*input_x[i]+b)%mod);
			int temp=(int)(((ll)a*output_x[i]+b)%mod);
			if(i!=n&&temp!=input_x[i+1]){
				flag=false;break;
			}
		}
		if(!flag)continue;
		else{
			for(int i=1;i<=n;i++)
			printf("%d\n",output_x[i]);
			break;
		}
	}
// fclose(stdout);
 } 
//3
//17
//822
//3014
QT开发串口程序与单片机通讯 如果有对象对这个信号感兴趣,想要处理的信号和自己的一个函数(称为槽(slot))绑定来处理这个信号。的内容,虽然实现的功能很简单,但是QT上位机开发的步骤基本就是这些步骤,通过这个基础实例把这些套路摸透我们就可以接着进行后续更多QT程序地开发学习了。QWidget类:所有用户界面对象的基类,窗口部件是用户界面的一个基本单元,它从窗口系统接收鼠标,键盘和其他消息,并在屏幕上绘制自己。我们上面运行的上位机都是在Qt Creator中编译运行的,如果我们需要把编写好的可执行文件发送给别人使用的话还需要进行打包。 阅读详情

相关推荐

Anthropic发布10款金融AI智能体模板深度解析:重构华尔街工作范式

摘要:2026年5月,Anthropic发布10款金融AI智能体模板,标志着AI从辅助工具升级为"虚拟同事"。这些智能体深度集成到Word、Excel等办公软件中,覆盖投行、商行、资管三大场景的核心工作流,预计可提升效率35-85%。技术架构基于Claude3.5Sonnet模型,具备200K上下文窗口和95%+的财务图表解析准确率,并与彭博等金融数据源直连。发布引发传统金融数据服务商股价下跌,摩根大通等机构则视其为成本优化工具。落地需分四阶段推进,关键在于数据治理和复合型人才培养。未来

yyq916的博客 634

OJ网站程序员必备

一. Online Judge简介: Online Judge系统(简称OJ)是一个在线的判题系统。用户可以在线提交程序多种程序(如C、C++、Pascal)源代码,系统对源代码进行编译和执行,并通过预先设计的测试数据来检验程序源代码的正确性。 一个用户提交的程序在Online Judge系统下执行时将受到比较严格的限制,包括运行时间限制,内存使用限制和安全限制等。用户程序执行的结果将被Onl...

weixin_34209851的博客 930

zemax光线光扇图

通过入瞳某一坐标(PX,PY)的光线在像面上有唯一的位置(EX,EY),以EX,EY为纵坐标,以PX,PY为横坐标,分别建立坐标系,把通过入瞳的光线都在坐标系里描点就得到了光扇图。对于视场内任意一点,取其子午面内的光线,以光线在光阑面上的透射点坐标为横坐标,同时以该光线在像面上的坐标为纵坐标,描出所有点,构成的图形即为子午面光扇图。在焦点位置,曲线的斜率为0,也就是说,不管入射时的横坐标(光阑面上的位置)是多少,离轴多远,都将汇聚在焦点处。此时,子午面和弧矢面有不同的分布,两条曲线不重合。

fendoudecheng的博客 8096

OpenJudge 程序设计与算法(一)心得

032:计算鞍点 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个5*5的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。 鞍点指 的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。 例如:在下面的例子中(第4行第1列的元素就是鞍点,值为8 )。 11 3 5 6 9 12 4 7 8 10 10 5 6 9 11 8 6 4 7 2 15 ...

weixin_44605359的博客 1404

Simulink Test Sequence自动化测试实战:从Excel到模型验证

本文详细介绍了如何利用Excel和MATLAB脚本实现Simulink Test Sequence的自动化测试。通过设计结构化Excel模板管理测试数据,并调用Simulink Test API批量创建与执行测试用例,该方法能显著提升复杂模型单元测试的效率,便于集成到CI/CD流程,实现从数据到验证的全自动化。

weixin_29261711的博客 144

(五)激光线扫描-位移台标定

线激光属于主动测量方式,但是由于线激光的特性,我们只能通过提取激光中心线获取这一条线上的高度信息,那么要进行三维重建的话,就需要通过平移或者是旋转的方式,来让线激光扫描被测物体的完整轮廓,也就是整个表面。激光线的密度越高还原出来的物体越细腻,但由于数据量大,也会导致速度变慢。下面以位移台为例讲解,如何标定位移台。

FlyWine的博客 2889

九度 Online Judge 算法 刷题 题目1098:字母统计

题目1098:字母统计题目描述: 输入一行字符串,计算其中A-Z大写字母出现的次数 输入: 案例可能有多组,每个案例输入为一行字符串。 输出: 对每个案例按A-Z的顺序输出其中大写字母出现的次数。 样例输入: DFJEIWFNQLEF0395823048+_+JDLSFJDLSJFKK 样例输出: A:0 B:0 C:0 D:3 E:2 F:5 G:0 H:0 I:

手把手教你学安卓 1322

NVIDIA GR00T SONIC - 人形机器人强化学习全身控制入门教程(一)

SONIC 是一个类人行为基础模型,它为机器人提供了一套从大规模人类动作数据中学习而来的核心运动技能。与为每个动作单独构建控制器不同,SONIC 将动作追踪作为可扩展的训练任务,因此单一套统一策略即可产生自然的全身运动,并支持多种多样的行为。         🎯 主要特点: 🚶 自然的全身运动(行走、爬行、动态动作) 🎮 支持实时 VR 遥操作 🤖 高级规划与交互的基础 📦 即用型 C++ 推理栈

2506_90492529的博客 838

hdoj3782XXX定律

xxx定律Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 359    Accepted Submission(s): 258Problem Description对于一个数n,如果是偶数,就把n砍掉一半;如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止。请计算需要经过几步才能将n变到1,具体可见样例。  Input测试包含多个用例,

独行闹市无人问,青灯剑影响素琴 763

NPC 三电平逆变器中点电位平衡算法详解

最常用:零序电压注入(简单、计算量小)最可靠:虚拟空间矢量调制(VSVPWM)及其改进形式(全范围平衡)趋势:结合模型预测控制(MPC)或智能算法(模糊、神经网络)进一步提升动态性能和鲁棒性。NPC 三电平逆变器中点电位平衡算法的 C# 实现示例(零序电压注入法 + 闭环补偿)在 NPC(Neutral Point Clamped)三电平逆变器中,中点电位平衡最常用且易于软件实现的方案是零序电压注入法。

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 323

Oracle EBS与SAP数据数据切换至迁移华为MetaERP分析

Oracle EBS到华为MetaERP的数据迁移可采用“表对表复制”思路,因其模块化设计下数据模型标准化、边界清晰。核心业务对象存储在结构明确的主表中,与MetaERP模型兼容度高,便于直接映射。而SAP到MetaERP的迁移则因SAP高度优化的复杂表结构(如簇表/池表)、数据分散冗余、深度依赖配置等特点,无法简单复制,必须采用基于业务对象的迁移方法,通过视图/BAPI提取数据并进行深度转换。两种迁移的本质差异源于源系统的数据模型设计理念不同。

金牌架构师 1378

UVA 10090 Marbles(扩展欧几里得)

Marbles Input: standard input Output: standard output I have some (say, n) marbles (small glass balls) and I am going to buy some boxes to store them. The boxes are of two types: Type 1: each

LYHVOYAGE的专栏 2236

【全网最新OD题库】2026华为 OD 机试C卷 机考真题库清单(全真题库)含考点说明(华为OD+2025年C卷+2025年B卷+2025年A卷+E卷+D卷+C卷)

华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2024e卷,od机试,2024E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2024华为od,如何备战华为od,华为od算法,华为od手撕代码,华为OD机试2024年最新题库,一文带你读懂华为OD,华为机试e卷,华为OD2025B卷、华

KJ.JK 3万+

Disgruntled Judge UVA - 12169 不爽的裁判 扩展欧几里得算法

题目链接        有个裁判出的题太难,总是没人做,所以他很不爽。有一次他终于忍不住了,心想:“反正我的题没人做,我干嘛要费那么多心思出题?不如就输入一个随机数,输出一个随机数吧。”        于是他找了3个整数x1、a和b,然后按照递推公式xi=(axi-1+b) mod 10001计算出了一个长度为2T的数列,其中T是测试数据的组数。然后,他把T和x1, x3,…, x2T-1写到...

Nicolas的博客 667

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Uva 12169 Disgruntled Judge(扩展欧几里得算法)

题目大意:给出数列的通项公式xi=(axi-1+b)mod 10001,给出T个整数,是这个数列的奇数项,求偶数项。 题目链接:https://vjudge.net/problem/UVA-12169 题目思路:已知x1,则x2=(x1a+b)%10001,将这个式子代入x3, x3=(a*(x1a+b)+b)%10001,即x3+10001k=aax1+(a+1)b, 将已知项全部移到等式左边x...

一只谜谜怪的博客 203

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

UVa 12169 Disgruntled Judge(扩展欧几里得算法的应用)

12169 - Disgruntled Judge Time limit: 3.000 seconds        Once upon a time, there was an NWERC judge with a tendency to create slightly too hard problems. As a result, his problems were nev

锦瑟年华,逐梦之人 474

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

UVA - 12169 Disgruntled Judge

题意: 找3个整数x1,a,b;然后按照递推公式xi=(axi−1+b)mod10001xi=(axi−1+b)mod10001x_i=(a x_{i-1}+b )mod 10001计算出一个长度为2T的序列,其中T为测试数据的组数。然后把奇数项当做输入,偶数项当做输出。 /*UVa12169 - Disgruntled Judge --a,b都在10000以内,这样可以枚举a的值,然后根...

Bryce1010's Blog 650

Disgruntled Judge UVA - 12169

Disgruntled Judge UVA - 12169 题意:给定2*T大小的数组,给定奇数项,符合关系x[i] = (a · x[i−1] + b) mod 10001.求各个偶数项。 题解:范围10000,可以通过暴力求解过,但是时间复杂度太高,根据公式可以采用拓展欧几里得求解。    可以得到 x2 = (a * x1 + b) % 10001; x3 = (a

sortmin的博客 214

Uva12169-Disgruntled Judge

题目链接 Uva-12169-Disgruntled Judge 题意 给出一个序列的一半,x1,x3,x5,x7,…x(2*t-1),序列的长度为2 * t。这个序列是通过x[i] = (x[i-1] * a + b) % mod (mod == 10001) 生成的。要求让你输出x2,x4,x6….,x(2 * t) 其中t 题解 根据紫书的思路 由于a,b都是

Uniontake 598

UVa 12169 Disgruntled Judge

exgcd

我要吃熊猫 464

【UVA】12169-Disgruntled Judge(暴力or欧几里得)

可能由于后台数据的原因,这道题直接暴力枚举a,b进行判断也能过,不过跑的时间长,效率太差了。 14021006 12169 Disgruntled Judge Accepted C++ 0.876 2014-08-11 08:46:28 不说了,比较无脑。 #include #include #include #incl

花月阁 3943

Disgruntled Judge UVA - 12169(扩展欧几里德+暴力)

题目链接: https://vjudge.net/problem/UVA-12169 题意: 有3个整数 x[i], a, b 满足递推式x[i]=(a*x[i-1]+b)mod 10001。由这个递推式计算出了长度为2T的数列,现在要求输入x[1],x[3],......x[2T-1], 输出x[2],x[4]......x[2T]. T&lt;=100,0&lt;=x&lt;=10000...

ltrbless的博客 269

UVA 12169 Disgruntled Judge

思路:枚举 a ,通过扩展欧几里得算法利用数列前两个值求 b ,排除非整数解的情况,判断该组 a,b 是否满足剩余序列,(注意必须判断整个序列,不能只判断前几个值,时间够用)。 关于数据范围的第一个问题:b 的范围是 [0,10000] 。由通解公式可知b’=b+10001*t(t 为任意整数),只要通解中的一个解满足序列递推公式,则剩余解都满足。可以简单对其模10001(如第21行,...

145

【NWERC2008】uva12169 Disgruntled Judge

枚举+扩展欧几里得

YHaX的博客 593

UVA 12169 - Disgruntled Judge(扩展欧几里得,等式求解)

这个题在求a,b的时候。 需要两个等式。 写出 x3 x2 的关系式  和 x

Shimmer_的专栏 838

UVa12169 Disgruntled Judge

x2 = (a * x1 + b) % 10001;x3= (a * x2 + b) % 10001; ∴x3 = (a * (a * x1 + b) % 10001 + b ) % 10001; ∴(a + 1) * b + 10001 * (-k) =x3 - a * a * x1 由于a的范围是1~10000,所以可以枚举a,解出b,暴力判断这组a和b能否适...

dezhen7015的博客 141
上一篇: UVA 11582 Colossal Fibonacci Numbers(数论)
下一篇: UVA 12716 GCD XOR(数论)
WedsonLin
博客等级 码龄7年 1粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值