例10-2 uva12169(扩展欧几里得)

基于逆向工程的中国裁判文书网爬虫技术深度解析:从反爬破解到合规抓取 最近承接了一个法律大数据分析的项目,需要获取某类合同纠纷的裁判文书数据,用于分析不同地区的判决规律、法官的裁判倾向以及法条适用情况。原本以为用常规的Python爬虫就能搞定,结果刚对着中国裁判文书网发了几个请求,就遭遇了“滑铁卢”:要么请求直接返回403 Forbidden,要么触发滑块验证码,甚至连IP都被临时封禁了。普通的requests+BeautifulSoup组合在裁判文书网面前完全失效,这也让我意识到,想要获取这里的数据,必须先通过逆向工程拆解网站的请求逻辑和反爬机制。经过一周的摸索,从抓包分析 阅读详情

题意:已知xi=(a*xi-1+b) mod 10001,且告诉你x1,x3.........x2*t-1,让你求出其偶数列

思路:

枚举a,然后通过x1,x3求出b,再验证是否合适

1.设a, b, c为任意整数。若方程ax+by=c的一组整数解为(x0,y0),则它的任
意整数解都可以写成(x0+kb', y0-ka'),其中a'=a/gcd(a,b),b'=b/gcd(a,b),k取任意整数。


2.设a, b, c为任意整数,g=gcd(a,b),方程ax+by=g的一组解是(x0,y0),则
当c是g的倍数时ax+by=c的一组解是(x0c/g, y0c/g);当c不是g的倍数时无整数解。


x2 = (a * x1 + b) % 10001;

x3 = (a * x2 + b) % 10001;

联立2个式子

x3 = (a * (a * x1 + b) % 10001 + b ) % 10001;

x3 = (a * (a * x1 + b) + b) % 10001;

所以 x3 + 10001 * k = a * a * x1 + (a + 1) * b;

x3 - a * a * x1 = (a + 1) * b + 10001 * (-k);

x3 - a*a*x1已知,就转化成ax+by = c  /*扩展欧几里得,在中途再用②判定是否是整数解即可


#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <map>
#include <vector>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int mod =10001;
ll f[mod];

void gcd(ll a , ll b ,ll &d, ll &x,ll &y)
{
    if(!b)
    {
        d = a ;
        x = 1;
        y = 0;
        return ;
    }
    else
    {
        gcd(b , a % b ,d , y , x);
        y -= x * (a / b);
        return ;
    }
}

int main()
{
    int n;
    int t;
    scanf("%d",&t);
    memset(f,0,sizeof(f));
    for(int i = 1; i <= 2*t; i+=2)
        scanf("%I64d",&f[i]);
    for(int a = 0; a < 10001; a++)
    {
        ll k , b , d;
        ll c = (f[3] - a * a * f[1]);
        gcd(mod, a + 1, d , k, b);
        if(c % d)            //当ax+by = c时,g=gcd(a,b),当c是g倍数时一组解(x*c/g,y*c/g),否则无整数解
            continue;
        b = b*c/d;
        int flag;
        for(int i = 2; i <= 2*t; i++)
        {
            flag = 1;
            int tmp = (a*f[i-1]+b)%mod;
            if(i%2)
            {
                if(tmp != f[i])
                {
                    flag = 0;
                    break;
                }
            }
            else
                f[i] = tmp;
        }
        if(flag)
            break;
    }
    for(int i = 2; i <= 2*t; i+=2)
    {
        printf("%d\n",f[i]);
    }
    return 0;
}



c\c++: Identifiers, modifier, qualifier, specifier, decorator; systemtap 文章目录参考英语含义在c、C++ 参考 c++ 标准 https://blog.youkuaiyun.com/tyronne/article/details/44016621 英语含义 modifier word or phrase that modifies (modify 2) another word or phrase 修饰语. qualifier (grammar) word, esp an adjective or adverb, that qualifies another word 修饰词; (尤指)形 阅读详情

相关推荐

430单片机实现三人投票表决器_基于单片机的五人表决器的设计

姚海云+马野摘要:本设计利用51单片机,按键开关模块,数码管显示模块和LED模块来实现一个简单的五人表决器的功能。按键开关模块中的键2~键6表示五个人,由5个人来投票,当同意的票数大于或者等于3人时,数码管显示同意的人数,说明表决通过。当表决的人数小于3时,数码管显示同意的人数。关键词:表决器;单片机;流水灯;数码管;矩阵键盘;时钟中图分类号:TP391 文献标识码:A 文章编号:1009-304...

weixin_33277215的博客 2557

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

大体题意: 给你n 个数 x1,x3,,,x2n-1 让你确定出x2,x4,,,x2n来! x数列每一项满足 xi = ((x(i-1) * a ) + b ) % 10001; 思路: 我们枚举a,因为对10001取模,所以a肯定在0~10000以内有解! 那么我们就枚举a,对于每一项a,我们根据x3和x1求出b来,然后开始枚举每一项看看这个a和b 是否合适!合适就输出终止枚举!

aozil_yang的博客 548

SpringBoot3项目实战:5分钟搞定Knife4j接口文档配置(含中文版设置)

本文详细介绍了在SpringBoot3项目中快速整合Knife4j接口文档工具的实战教程。内容涵盖核心依赖选择、基础配置、中文界面设置、API信息深度定制以及生产环境安全策略,帮助开发者高效构建专业、可交互的API文档门户,提升团队协作效率。

weixin_29204121的博客 256

360手机浏览器_集中整治!涉及QQ、UC、360、搜狗等手机浏览器

UC、QQ、华为、360、搜狗、小米、vivo、OPPO等8款影响力较大的手机浏览器被纳入首批重点整治范围为有效解决网民反映强烈的手机浏览器网络传播乱象,国家网信办即日起对手机浏览器进行专项集中整治,重点聚焦行业突出问题实施“靶向治疗”,通过督导整改立起“带电的高压线”,推动手机浏览器传播秩序短期内实现实质性好转,回应社会关切。一段时间以来,手机浏览器野蛮生长,违规从事互联网新闻信息服务...

weixin_39575212的博客 335

MySQL常见面试题汇总(建议收藏!!!)

目录一、索引相关(1)什么是索引?(2)索引是个什么样的数据结构呢?(3)为什么使用索引?(4)Innodb为什么要用自增id作为主键?(5)Hash 索引和 B+ 树索引有什么区别或者说优劣呢?(6)什么是聚簇索引(6)非聚簇索引一定会回表查询吗?(6)聚簇索引和非聚簇索引的区别(6)MyISAM和InnoDB实现B+树索引方式的区别是什么?(6)MySQL中有四种索引类型,可以简单说说吗?(6)覆盖索引是什么?(6)联合索引是什么?为什么需要注意联合索引中的顺序?(6)创建的索引有没有被使用到?或者说怎

蔡政洁的博客 7万+

DolphinScheduler工作流中ChunJun任务保存失败的深度解析与实战修复

本文深度解析了在DolphinScheduler工作流中创建ChunJun任务时遭遇“parameter invalid”保存失败的普遍问题。其根源在于前端表单的`customConfig`参数默认值与后端校验逻辑不匹配。文章提供了两种实战修复方案:一是修改前端源码并重新编译,二是热更新已部署的JS文件,并对比了其适用场景与风险,帮助用户彻底解决此集成障碍。

weixin_29010003的博客 395

例题10-2 UVa12169 Disgruntled Judge(拓展欧几里德)

题意: 看白书 要点: 再一个办法就是枚举a,利用x1,x3求出b,判断所有x的关系能不能满足a,b。 如何通过a,x1,x3求出b呢。 x2 = (a * x1 + b) % 10001; x3 = (a * x2 + b) % 10001; 联立2个式子 x3 = (a * (a * x1 + b) % 10001 + b ) % 10001; x3 = (...

weixin_33709590的博客 130

图像去模糊(二)——Richardson–Lucy算法

Richardson Lucy Algorithm(Richardson-Lucy算法详解及效果实例)

xueruhongchen的博客 3万+

手机浏览器网址_你真的会用浏览器搜索吗?几个高阶搜索技巧助您高效找到有用信息

前言虽然在座的大家每天都会在浏览器上检索大量信息,但是大多数人在浏览器搜索信息的时候还只是简单地输入问题的关键词,这种基础粗略的检索技巧会挖出内容池中海量的信息,结果也往往是很难抑或是找不到自己想要获得的信息。今天我就来和大家分享各大搜索引擎通用的高阶搜索技巧,不管你是习惯必应还是百度,这些高阶搜索技巧都能够助您精准高效地获取自己想要的信息。精准检索指定格式的内容有时候大家检索的内容有一定的格式指...

weixin_39996101的博客 2068

作物生长模型Oryza V3实战10:运行文件参数详解

运行文件(.rer)用于批量模拟农业场景,包含多组参数集(Rerunset),每组设定独立的时间范围、灌溉施肥方案等,支持测试不同农艺措施效果。该文件可实现参数自动校准,通过多组参数组合迭代寻找最优值。模拟结果文件(res.dat)会记录全部测试时间段的数据,便于用户对比产量、水分利用率等指标,筛选最优方案或分析气候适应性策略。

209

数据挖掘实战-基于情感分析+网络语义分析+LDA主题分析对大唐不夜城用户评论进行文本分析

本研究基于去哪儿网和携程网的1888条大唐不夜城游客评论数据,运用Python进行文本分析。通过情感分析发现游客评价以积极为主(占比约70%),中性占20%,消极占10%。采用ROSTCM6软件进行社会网络语义分析,识别不同情绪下的高频词汇。使用LDA主题模型将评论划分为3个主题(夜景、表演、美食),并分析主题强度随时间变化趋势。实验包含数据采集、预处理、情感分析、语义网络分析和LDA建模等完整流程,为景区管理优化提供数据支持。源代码涵盖爬虫、数据处理和可视化分析的全套实现。

m0_64336780的博客 1万+

Uva12169 扩展欧几里得模板

Uva12169(扩展欧几里得) 题意: 已知 $x_i=(a*x_{i-1}+b) mod 10001$,且告诉你 $x_1,x_3.........x_{2t-1}$, 让你求出其偶数列 解法: 令$ x_2=(ax_1+b)mod 10001$,$x_3= (ax_2+b)mod 10001$ 解得:$x_3+10001k=a^{2}x_1+( a + 1) b$ 移像...

TT4191105的博客 180

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

UVA - 12169 扩展欧几里得

题目链接 UVA-12169 题意 现在有一个长度为2n的序列B,序列满足Bi=(a∗Bi−1+b) mod 10001B_i=(a*B_{i-1}+b)\ mod\ 10001Bi​=(a∗Bi−1​+b) mod 10001,其中a和b两个参数未知。现在给定下标为奇数的序列B,求下标为偶数的序列B。求出任意一个即可. 思路 我们先写一下式子 B3=(aB...

jesHrz的博客 220

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

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=(ax2+b)%mod - - - 222 令n=mod 由111得x2和ax1+b同余,所以x2-(ax1+b)=ny1 - - -333 由222得x3和ax2+b同余,所以x3-(

WedsonLin的博客 237

Statistics and Machine Learning Toolbox

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

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

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

[紫书CH10] 例题10-2:不爽的裁判(暴力、模拟、模算术、UVa12169)

紫书题解汇总:[紫书CH0] 《算法竞赛入门经典》(第2版) 题解目录 文章目录1. 题目来源2. 题目说明3. 题目解析方法一:暴力+模拟+模算术 1. 题目来源 链接:UVA12169 Disgruntled Judge 2. 题目说明 中文描述: 3. 题目解析 方法一:暴力+模拟+模算术 老样子还是看看数据大小,所给的递推公式中对 10001 进行取模,那么根据模算术的规则,a、b ...

Y-puyu 的博客 287

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

原题链接:https://vjudge.net/problem/UVA-12169 分类:暴力求解 备注:模算数 据说可以用扩展欧几里得 import java.util.Scanner; public class Main{ // static private final String INPUT = "in.txt"; public static final int mod=10001; public static void main(String[] args) { // FileInputS

TK_wang_的博客 319

UVa12169 - Disgruntled Judge (扩展欧几里得)

UVa12169 - Disgruntled Judge解题思路 代码 利用扩展欧几里得求解 代码 解题思路因为递推公式对10001取模,所以 a,b 的取值范围就可以缩小到 [0,10000], 最简单的就是直接对 a,b 进行枚举,满足条件就作为正确答案。代码#include <iostream>using namespace std; const int mod = 10001; int t,

dcf_xyz的专栏 641

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

数论题4例

数论题4例: Uva12169不爽的裁判: 这道题是一道比较好的数论题罢。额,一开始真心没思路。很明显最开始的想法就是暴搜a和b,然后的话发现会超,于是看看能不能优化咯。发现暴搜a之后可以通过联立关系式求出b然后基本就Ok,主要是要公式推导一下。一开始真笨啊。。。想到中国剩余定理去了,推导其实不难,就是带入则个就好了。 X2=(ax1+b)%mod,x3=(ax2+b)%mod 则x3=(

maxtir的博客 677

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

UVa 12169 Disgruntled Judge

exgcd

我要吃熊猫 464

UVa12169

我们可以暴力枚举a,然后通过x1和x3确定b的值,然后确定其他的数字,一旦出现错误就放弃这组解。 关键问题就在于如何通过a,x1,x3确定b的值 x2=(x1a+b)%M x3=(x2a+b)%M=((x1a+b)%Ma+b)%M x3-kM=x1a%Ma%M+ba%M+b 我们不妨设b<M b(a+1)+kM=x3-x1a*a 我们想要求出b,即就是求出这个二元一次方程的一组解,这时候用扩...

T_T233333333的博客 421

UVA 12169 - Disgruntled Judge(拓展欧几里得)

题目链接 https://cn.vjudge.net/problem/UVA-12169 【题意】 有一个长度为T的整数序列x,已知x[i]=(a*x[i]-1+b) mod 10001,且告诉你x[1],x[3]………x[2*T-1],让你求出其偶数项分别是多少,输出任意解即可 【思路】 因为取模的范围不大,所以可以枚举a(0~10000),然后根据x[1],x[3]计算出b,然后再去验...

Change the world by program. 229
上一篇: 例10-1 uva11582(裴波那切数列)
下一篇: 例10-3 uva10375(唯一分解定理)
Tyuio28
博客等级 码龄11年 12粉丝 279原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值