洛谷P2520 裴蜀定理,多限制的不定方程解的构造

5个4000比特大状态置换算法的设计与分析 下面是 5 个概念性、实验性的 4000 位可逆置换设计。它们都保证是双射,但未经过密码分析,不可直接用于生产系统。风格分别覆盖:三维 SPN、Feistel、可逆元胞自动机、ARX、宽轨迹/Keccak 式结构。 这 5 个设计分别代表了 SPN、Feistel、元胞自动机、ARX、宽轨迹 Keccak 五种不同风格,覆盖了主流大状态置换的构造思路。再次强调:它们只是实验性概念,若要用于实际协议,必须经过严格安全性分析。 阅读详情

题意:

给出八个基底向量:
(a,b),(−a,b),(a,−b),(−a,−b),(b,a),(−b,a),(b,−a),(−b,−a) (a,b),(-a,b),(a,-b),(-a,-b),(b,a),(-b,a),(b,-a),(-b,-a) (a,b),(−a,b),(a,−b),(−a,−b),(b,a),(−b,a),(b,−a),(−b,−a)
问能否通过若干个上述向量相加得到相邻(x,y)(x,y)(x,y)?

Solution:

显然我们只需加减以下四组基底相邻即可
(a,b),(−a,b),(b,a),(−b,a) (a,b),(-a,b),(b,a),(-b,a) (a,b),(−a,b),(b,a),(−b,a)
不妨设他们分别被算数增加了kik_{i}ki​次,ki∈Zk_{i}\in Zki​∈Z,于是需要下列方程组有解
k1(a,b)+k2(−a,b)+k3(b,a)+k4(−b,a)=(x,y) k_{1}(a,b)+k_{2}(-a,b)+k_{3}(b,a)+k_{4}(-b,a)=(x,y) k1​(a,b)+k2​(−a,b)+k3​(b,a)+k4​(−b,a)=(x,y)
即
{(k1−k2)a+(k3−k4)b=x(k1+k2)a+(k3+k4)b=y \begin{cases} (k_{1}-k_{2})a+(k_{3}-k_{4})b=x \\ (k_{1}+k_{2})a+(k_{3}+k_{4})b=y \end{cases} {(k1​−k2​)a+(k3​−k4​)b=x(k1​+k2​)a+(k3​+k4​)b=y​
要方程组有解,这是两个不定方程,由裴蜀定理,首先需要
gcd(k1−k2,k3−k4)∣xgcd(k1+k2,k3+k4)∣y gcd(k_{1}-k_{2},k_{3}-k_{4})|x\\ gcd(k_{1}+k_{2},k_{3}+k_{4})|y gcd(k1​−k2​,k3​−k4​)∣xgcd(k1​+k2​,k3​+k4​)∣y
然后这样只保证了存在(k1−k2),(k1+k2),(k3−k4),(k3+k4)(k_{1}-k_{2}),(k_{1}+k_{2}),(k_{3}-k_{4}),(k_{3}+k_{4})(k1​−k2​),(k1​+k2​),(k3​−k4​),(k3​+k4​),我们的目的是使kik_{i}ki​有正整数解,此时我们可以这样解出k1k_{1}k1​
k1=(k1−k2)+(k1+k2)2 k_{1}=\frac{(k_{1}-k_{2})+(k_{1}+k_{2})}{2} k1​=2(k1​−k2​)+(k1​+k2​)​
要使k1k_{1}k1​是正整数,那么必须要分子为偶数,于是(k1+k2)(k_{1}+k_{2})(k1​+k2​)与(k1−k2)(k_{1}-k_{2})(k1​−k2​)奇偶性必须相同,同理对后两项也是的,接下来枚举他们的奇偶性:

  • 若(k1−k2)(k_{1}-k_{2})(k1​−k2​)为偶数,(k3−k4)(k_{3}-k_{4})(k3​−k4​)为偶数,那么方程组的(1)(1)(1)式就可以写作
    2[(k1−k2)a+(k3−k4)b]=x⇒(k1−k2)(2a)+(k3−k4)(2b)=x 2[(k_{1}-k_{2})a+(k_{3}-k_{4})b]=x\Rightarrow(k_{1}-k_{2})(2a)+(k_{3}-k_{4})(2b)=x 2[(k1​−k2​)a+(k3​−k4​)b]=x⇒(k1​−k2​)(2a)+(k3​−k4​)(2b)=x
    此时只需要上述方程有解,就可以保证解出来的(k1−k2)(k_{1}-k_{2})(k1​−k2​)为偶数了,即只需要
    gcd(2a,2b)∣x gcd(2a,2b)|x gcd(2a,2b)∣x
    同理可得
    gcd(2a,2b)∣y gcd(2a,2b)|y gcd(2a,2b)∣y

  • 若(k1−k2)(k_{1}-k_{2})(k1​−k2​)为偶数,(k3−k4)(k_{3}-k_{4})(k3​−k4​)为奇数,只需要左右两边+b+b+b,得到
    (k1−k2)a+(k3−k4+1)b=x+b (k_{1}-k_{2})a+(k_{3}-k_{4}+1)b=x+b (k1​−k2​)a+(k3​−k4​+1)b=x+b
    这就转化为都是偶数的情形了,同上只需要
    gcd(2a,2b)∣(x+b),gcd(2a,2b)∣(y+a) gcd(2a,2b)|(x+b),gcd(2a,2b)|(y+a) gcd(2a,2b)∣(x+b),gcd(2a,2b)∣(y+a)

    下面两种情况同理,直接给出结论
  • 若(k1−k2)(k_{1}-k_{2})(k1​−k2​)为奇数,(k3−k4)(k_{3}-k_{4})(k3​−k4​)为偶数,只需要
    gcd(2a,2b)∣(x+a),gcd(2a,2b)∣(y+b) gcd(2a,2b)|(x+a),gcd(2a,2b)|(y+b) gcd(2a,2b)∣(x+a),gcd(2a,2b)∣(y+b)

  • 若(k1−k2)(k_{1}-k_{2})(k1​−k2​)为奇数,(k3−k4)(k_{3}-k_{4})(k3​−k4​)为奇数,只需要
    gcd(2a,2b)∣(x+a+b),gcd(2a,2b)∣(y+a+b) gcd(2a,2b)|(x+a+b),gcd(2a,2b)|(y+a+b) gcd(2a,2b)∣(x+a+b),gcd(2a,2b)∣(y+a+b)

上述四种情况满足一个即代表有解,并且上面每一种都包含最开始的裴蜀定理的条件,就无需再验证裴蜀定理了

// #include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<numeric>
#include<ctime>
using namespace std;

using ll=long long;
const int N=25,inf=0x3fffffff;
const long long INF=0x3fffffffffffffff,mod=1e9+7;

template<class T>
T gcd(T a,T b){
    return !b?a:gcd(b,a%b);
}

ll tmp;

bool check(ll x,ll y){return x%tmp==0&&y%tmp==0;}

int main()
{
    #ifdef stdjudge
        freopen("in.txt","r",stdin);
    #endif
    int t; cin>>t;
    while(t--)
    {
        ll a,b,x,y; cin>>a>>b>>x>>y;
        tmp=gcd(a,b)<<1;
        if(check(x,y)||check(x+b,y+a)||check(x+a,y+b)||check(x+a+b,y+a+b)) printf("Y\n");
        else printf("N\n");
    }
    return 0;
}
蓝牙HCI Dongle实战:从芯片选型到协议栈集成的完整指南 本文详细介绍了蓝牙HCI Dongle的实战应用,从芯片选型到协议栈集成的完整指南。通过对比CSR8510、nRF52840等主流芯片的性能和价格,提供选型建议和避坑技巧。同时,深入解析Zephyr协议栈移植和常见问题排查,帮助开发者高效完成蓝牙项目开发。 阅读详情

相关推荐

Win10平台下QT6.9.0 OpenCV 4.10.0从入门到精通

我最近开发一个视觉项目,我们从0开始记录在windows 10下 用QT6.9+OpenCV 4.10.0搞定整个项目的开发过程。以抛砖引玉,大家共同进步。

fds111111的博客 1712

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 187

安卓app逆向破解脱壳教程

From:Hook 神器家族的 Frida 工具使用详解:https://blog.youkuaiyun.com/FlyPigYe/article/details/90258758 详解 Hook 框架 frida (信抢红包):https://www.freebuf.com/company-information/180480.html APP逆向神器之Frida【Android初级篇】:https://www.jianshu.com/p/2d755beb1c54 frida 官网文档:https://fr..

sinat_28371057的博客 2万+

【算法拾光】链表 哈希表|K个一组翻转链表 + 两数之和

K个一组翻转链表需分段反转,借助哑节点与前驱指针维护连接,避免断链;两数之和利用哈希表实现O(1)查找,空间换时间,高效定位目标组合。前者考察链表指针操作,后者聚焦映射关系构建,均为面试高频题。

wuqingyigexiaoba的博客 274

从零开始:DJI-F450无人机硬件组装全流程解析

本文详细解析了DJI-F450无人机的硬件组装全流程,从开箱清点到焊接、机械组装、飞控系统搭建、电路整合及调试试飞。重点介绍了电调焊接、机臂安装、飞控校准等关键步骤的实用技巧和常见问题解决方案,帮助无人机爱好者从零开始完成专业级组装。

weixin_29210759的博客 619

eCognition易康面向对象分类批量选择样本,批量导出shp

可以的,使用这个工具条最右边那个三角尺manual editing toolbar,这是用来直接指定类别的,咱们可以拿它选完以后把指定的类别转成训练样本。另一个好处是,这个选出来的样本可以直接导出成shp,但select sample是不可以的,只能导出TTAMask也就是栅格掩膜。如果要导出shp,要在转之前导出。中间那条有点点的红线就是我的鼠标轨迹,只要碰到的对象就会全部选中,然后一点3的那个按钮就直接全部划分为林地了,十分丝滑。在弹出来的工作条里,首先选择你的类别,比如这里选一个forest。

qq_61845364的博客 4068

排序算法深度笔记(下):非比较类排序的线性突破与工程边界

排序算法时间复杂度额外空间复杂度稳定性是否基于比较选择排序O(N^2)(O(1))不稳定是冒泡排序O(N^2)(O(1))稳定是插入排序O(N^2)(O(1))稳定是归并排序O(N\log N)(O(N))稳定是快速排序O(N\log N)O(log N)不稳定是堆排序O(N\log N)O(1)不稳定是计数排序(O(N + M))O(M))稳定否基数排序O(N)稳定否桶排序平均O(N) / 最坏O(N^2)

2401_87069538的博客 559

C语言中errno与perror()函数

宏errno和perror()函数都是在stdlib.h中定义的。 1 stdlib.h头文件 stdlib.h头文件即standard library标准库函数头文件,包含了C、C++语言的最常用的系统函数,该文件中还包含了C语言标准库函数的定义。 2 errno宏 errno宏在stdlib.h中的定义为 #define errno (*_errno()) errno宏用于保存程...

hou09tian的博客 1万+

算法日常・每日刷题--<动态规划>42

本题为“不相交的线”,与最长公共子序列问题相似。使用动态规划求解:定义 dp[i][j] 表示 nums1[0:i] 与 nums2[0:j] 的最大不相交连线数。若元素相等,则继承左上值加1;否则取上方或左方最大值。最终返回 dp[m][n],即两数组的最大不相交连线数。时间复杂度 O(mn),空间复杂度 O(mn)。

2503_92261635的博客 19

FISCO BCOS(一)———搭建单群组FISCO BCOS联盟链

1、安装ubuntu依赖 sudo apt install -y openssl curl 2、创建操作目录, 下载安装脚本 创建操作目录 cd ~ && mkdir -p fisco && cd fisco 下载脚本 curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.8.0/build_chain.sh && chmod u+x build_chain.

林中有神君 6649

LSTM 深度解析从原理推演到现代序列建模的演进

LSTM(Long Short-Term Memory,长短期记忆网络)是一种特殊的递归神经网络(RNN),它通过引入记忆单元(Cell State)来解决普通RNN在长序列数据处理中的梯度消失问题。LSTM可以在长时间的序列中捕捉依赖关系,是一种非常适合处理时间序列、自然语言处理、语音识别等任务的深度学习模型。在LSTM中,记忆单元(Cell State)是一个贯穿整个序列的数据通道,用于存储和传递关键信息。记忆单元在LSTM的时间步之间保持信息的持久性,可以看作是一个长期记忆的“容器”。

hello.reader 3万+

C语言程序设计题|有序数组插入数字冒泡排序

题目要求将一个数插入有序数组末尾,并用冒泡排序实现整体升序。代码先将输入数存入数组最后位置,再通过双重循环进行冒泡排序,每轮将较大元素向后移动,最终输出11个升序元素。该方法虽时间复杂度为O(n²),但符合题目要求,逻辑清晰,适合初学者理解排序原理。

2301_81429079的博客 643

飞牛NAS打造成童年经典游戏机

这篇文章介绍如何使用飞牛NAS搭建经典游戏模拟器。首先需开启Docker并下载RetroArch-web镜像,随后创建容器并设置端口映射。启动后上传游戏ROM文件(如NES格式),在模拟器中加载即可游玩。文章以修改版坦克大战为例,详细说明按键配置方法。同时还提到公网访问需配置DDNS或使用ZeroTier内网穿透。通过这套方案,用户可以在NAS上重温红白机等经典游戏体验。

dgnankai的专栏 884

【算法拾光】模拟|外观数列 + 数青蛙

本文总结两道模拟题解法:外观数列通过迭代统计连续数字个数生成下一项,关键在于处理末尾字符;数青蛙则模拟青蛙叫声“croak”状态转移,维护各阶段青蛙数量,记录最大并发数并确保全部完成。共性在于严格遵循流程、细致处理边界与非法情况,锻炼字符串遍历与状态管理能力。

wuqingyigexiaoba的博客 367

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

牛客周赛165C题(前后缀性质,递推,排序,枚举)

题目大意:给定长度为 `n` 的数组,选择 `k ∈ [1,n]`,将前 `k` 个元素整体翻转,后面的元素不变。要求操作后的整个数组非递减,统计满足条件的 `k` 的数量。题目链接:https://ac.nowcoder.com/acm/contest/141721/C。时间复杂度:O(nlogn)

2501_94316951的博客 170

Statistics and Machine Learning Toolbox

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

【数据结构-3】算法美学之降复杂度

在while循环的循环体内,首先用临时变量保存最后一个位置的数据,再通过for循环把所有元素往后移动一位,最后把tmp中保存的值放到下标为0的位置上去。方法二的思路是:创建新数组,让原数组中后k个数据移动到新数组中前面的位置,让原数组中前numsSize-k个数据移动到新数组中后面的位置,这。这段代码的思路是:三次逆置,第一次逆置前numsSize-k个数据,第二次逆置后k个数据,最后整体逆置。这篇博文分享一道解法不一的算法题,求解过程的目的在于降低算法的时间复杂度,题源力扣。,属于空间换时间的操作。

weixin_44218929的博客 81

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

算法日常・每日刷题--<动态规划>32

给定严格递增的正整数数组,求最长斐波那契子序列长度。使用二维DP,dp[i][j]表示以arr[i]、arr[j]为最后两项的序列长度,初始化均为2。通过哈希表快速查找前一项target = arr[j] - arr[i],若存在且下标小于i,则状态转移:dp[i][j] = dp[k][i] + 1。遍历更新全局最大长度,最终若结果小于3则返回0。时间复杂度O(n²),空间复杂度O(n²)。

2503_92261635的博客 177

算法札记:几何分布在算法题UVA1262的运用

集卡问题求解核心:将集齐n种优惠券的过程分为n个阶段,每个阶段期望购买次数为 $ \frac{n}{k} $(k为剩余种类数),总期望为 $ n \cdot H_n $(调和数)。通过自洽方程推导单阶段期望,无需几何分布或无穷级数,逻辑清晰且适用于大一水平。例如,n=5时期望约11.42,非5。题目要求以带分数形式输出精确结果,算法上需累加分数并化简。

Keven_11的博客 317

不同的二叉搜索树

互不相同的二叉搜索树的种数,以 j (1<=j<=i)为头节点,左子树是 j-1 个数,右子树就是 i - (j - 1) -1 = i - j个数。所以dp[3] = dp[0] * dp[2] + dp[1] * dp[1] + dp[2] * dp[0]头1 = 左子树0节点 * 右子树2节点,二叉搜索树就是排序树,左子树<根节点<右子树,左右子树也满足左子树<根节点<右子树。头2 = 左子树1节点 * 右子树1节点。所以dp[i] += dp[j-1] * dp[i-j]个节点组成且节点值从。

qq_44721738的博客 150

SSL证书选RSA还是ECDSA:公钥算法、CA签名与兼容性怎么核对

申请SSL证书时,RSA和ECDSA该怎么选?先分清站点公钥算法、CA签名算法和TLS实际兼容性,再用隔离OpenSSL实验读取两类材料,核对申请、续期和部署交接,避免只看Signature Algorithm就选错。

谁呀!的博客 394

从曲线到储层:Techlog/KAPPA 全流程算法、UltraLAB 选型与本地 AI 部署实战

以高频 CPU 保证交互,以充足内存承载多井与多任务,以 NVMe 打通项目和知识库 I/O,再按本地模型、上下文与并发配置 GPU。对 UltraLAB 用户而言,更合理的采购方式是带着真实项目做选型:一组典型井、一套完整解释模板、一个目标大模型、一次多人并发测试。用实测结果确定配置,才能把预算转化为解释效率,而不是闲置算力。软件模块、操作系统与许可条件以厂商当前正式说明为准;硬件建议需结合项目实测。AI 输出只能作为辅助证据,不能替代岩石物理与油藏工程专业审核。

wdf8088的博客 165

【Deep-OC-SORT 01】多轨迹算法Deep-OC-SORT源码分析

本工程基于Deep-OC-SORT核心模块,重构并适配了EmbeddingComputer(外观特征提取)、CMCComputer(相机运动补偿)与OCSort(主跟踪器)三类。前者实现整框/网格模式的特征提取与L2归一化;后者通过稀疏光流或SIFT匹配估计仿射变换,补偿相机运动;主跟踪器融合IoU、外观相似度与方向一致性,支持模块开关与自定义组件,实现高效多目标跟踪。

Jayson 博客 331

C++ 标准库算法全景指南

本文系统梳理C++标准库<algorithm>与<numeric>中100+算法,按功能分为非修改、修改、排序、二分查找、归并、堆、极值、字典序、排列及数值操作十大类,涵盖典型用法与时间复杂度。结合C++20范围(ranges)与投影特性,实现更简洁高效的代码。

sss123ddd的博客 271

算法日常・每日刷题--<动态规划>41

给定两个字符串text1和text2,求其最长公共子序列长度。使用动态规划,定义dp[i][j]为text1前i个字符与text2前j个字符的最长公共子序列长度。若字符相等,则dp[i][j] = dp[i-1][j-1] + 1;否则取舍弃一方的最大值:dp[i][j] = max(dp[i-1][j], dp[i][j-1])。最终返回dp[m][n]。时间复杂度O(mn),空间复杂度O(mn)。

2503_92261635的博客 135

高速公路无人机巡检系统:场景、算法与部署方案

高速公路巡检的工程矛盾,不在“能不能飞到”,而在“端侧算力、时延约束与精度要求三者之间如何分配”。路面病害要求毫米级识别,但高速动态成像与运动模糊压制了单帧精度;交通事件要求秒级推送,但隧道与峡谷的通信盲区切断了云端链路;桥梁梁底的无卫星信号环境,则把自主定位的难度推到了GNSS失效的边界。本文从“端—边—云”三级协同的工程逻辑出发,拆解路面病害、交通事件、桥梁结构三类场景下算法与部署的实际取舍,结合重庆绕城高速、广西六宾高速、南京6G低空巡检等公开数据,给出可复用的系统设计参考。

THJS优快云的博客 200

嵌入式 AI 智能相机怎么选?从算力、算法架构、部署方式深度对比

在工业自动化视觉检测场景中,嵌入式 AI 智能相机正在逐步替代传统 “工业相机 + 上位机工控机” 的方案。但市面上产品参数繁杂,很多工程师选型时容易被纸面算力、宣传卖点误导。本文从**持续算力性能、算法架构设计、现场部署模式**三个核心维度,梳理嵌入式视觉设备不同技术路线的差异、适用边界与落地痛点,为机器视觉工程师、自动化集成商、产线技改负责人提供可落地的选型参考。

VisionDataLab的博客 296
上一篇: 牛牛P50591 解的分配问题,高精度组合数
下一篇: 2020江西省赛A 莫比乌斯反演
stdforces
博客等级 码龄4年 9粉丝 136原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值