hdu 5947 数论

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

题意:

给定a,ba,ba,b,找出x,yx,yx,y,使得
x+y=alcm(x,y)=b x+y=a\\ lcm(x,y)=b x+y=alcm(x,y)=b

Solution:

似乎有lcmlcmlcm,要么跟唯一分解有关系,要么跟gcdgcdgcd有关系,唯一分解可以枚举分配因子的幂,但是有120000120000120000组样例,时间复杂度不够。

对于gcd(x,y)gcd(x,y)gcd(x,y),设k1,k2k_{1},k_{2}k1​,k2​满足
gcd(x,y)⋅k1=xgcd(x,y)⋅k2=y gcd(x,y)\cdot k_{1}=x\\ gcd(x,y)\cdot k_{2}=y gcd(x,y)⋅k1​=xgcd(x,y)⋅k2​=y
那么
x+y=gcd(x,y)⋅(k1+k2)=a(1) x+y=gcd(x,y)\cdot(k_{1}+k_{2})=a \tag{1} x+y=gcd(x,y)⋅(k1​+k2​)=a(1)

xy=gcd(x,y)2⋅k1k2(2) xy=gcd(x,y)^2\cdot k_{1}k_{2} \tag{2} xy=gcd(x,y)2⋅k1​k2​(2)

由(2)(2)(2)
lcm(x,y)=xygcd(x,y)=gcd(x,y)⋅k1k2=b(3) lcm(x,y)=\frac{xy}{gcd(x,y)}=gcd(x,y)\cdot k_{1}k_{2}=b \tag{3} lcm(x,y)=gcd(x,y)xy​=gcd(x,y)⋅k1​k2​=b(3)
由(1)(3)(1)(3)(1)(3)
k1+k2=agcd(x,y)k1k2=bgcd(x,y)(4) k_{1}+k_{2}=\frac{a}{gcd(x,y)}\\ \tag{4} k_{1}k_{2}=\frac{b}{gcd(x,y)} k1​+k2​=gcd(x,y)a​k1​k2​=gcd(x,y)b​(4)
因为k1,k2k1,k2k1,k2是除了gcd(x,y)gcd(x,y)gcd(x,y)之外的因子,于是k1,k2k1,k2k1,k2一定没有重复因子,于是gcd(k1,k2)=1gcd(k_{1},k_{2})=1gcd(k1​,k2​)=1

存在一个结论

若x,yx,yx,y互质,那么x+yx+yx+y与xyxyxy互质,证明如下

由辗转相除gcd(a,b)=gcd(b,a%b)gcd(a,b)=gcd(b,a\%b)gcd(a,b)=gcd(b,a%b)
gcd(x,y)=gcd(x+y,x)=1 gcd(x,y)=gcd(x+y,x)=1 gcd(x,y)=gcd(x+y,x)=1
即x+y,xx+y,xx+y,x互质,同理对gcd(y,x)gcd(y,x)gcd(y,x)操作,可以得到x+y,yx+y,yx+y,y互质

那么(x+y)2,xy(x+y)^2,xy(x+y)2,xy一定互质,因为每个因子都不会重复,又x+yx+yx+y已经包含了(x+y)2(x+y)^2(x+y)2的所有素因子了,于是得到x+y,xyx+y,xyx+y,xy互质

利用这个结论,我们可以得到
gcd(agcd(x,y),bgcd(x,y))=1 gcd(\frac{a}{gcd(x,y)},\frac{b}{gcd(x,y)})=1 gcd(gcd(x,y)a​,gcd(x,y)b​)=1
于是
gcd(a,b)=gcd(x,y) gcd(a,b)=gcd(x,y) gcd(a,b)=gcd(x,y)
这样就可以得到gcd(x,y)gcd(x,y)gcd(x,y)的值,代入方程组(4)(4)(4)得到一个二元一次方程,就可以解出k1,k2k_{1},k_{2}k1​,k2​,从而得到x,yx,yx,y,注意解出来的k1,k2k_{1},k_{2}k1​,k2​要是正整数

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

using ll=long long;
const int N=1e5+5,inf=0x3fffffff;
const long long INF=0x3fffffffffffffff,mod=998244353;

pair<ll,ll> solve(ll a,ll b)
{
    //解方程组xy=a,x+y=b
    pair<ll,ll>ret={-1,-1};
    if(b*b<4*a) return ret;
    double y=(b+sqrt(b*b-4*a))/2;
    if(fabs(y-floor(y))>1e-8) return ret;
    return make_pair(b-y,y);
}

ll a,b;

int main()
{
    ios::sync_with_stdio(false);
    while(cin>>a>>b)
    {
        ll gcd=__gcd(a,b);
        auto tmp=solve(b/gcd,a/gcd);
        if(tmp.first==-1) printf("No Solution\n");
        else printf("%lld %lld\n",tmp.first*gcd,tmp.second*gcd);
    }
    return 0;
}
用树莓派Pico低成本更新USB-C PD控制器固件实战指南 固件更新是嵌入式系统开发与维护中的核心环节,它直接决定了硬件设备的功能、性能与兼容性。其原理通常是通过特定的通信接口(如SWD、JTAG、UART或USB)与设备内部的Bootloader建立连接,将新的程序代码安全写入非易失性存储器。在USB Power Delivery(PD)和Type-C生态中,固件更新技术尤为重要,它能修复协议握手Bug、适配新设备并提升供电策略的灵活性。本文聚焦于一个典型的工程实践场景:如何利用广泛普及且成本极低的树莓派Pico开发板,作为USB-C协议到I²C协议的转换桥,实现 阅读详情

相关推荐

华中科技大学头歌 交通灯系统设计 Lojisim 详细实验报告,实验图,仅供参考

本实验也是参考了许多大神的做法,也是小白一个!有完整实验代码,实验报告,答辩PPT(ppt当时做得仓促,有点拉胯)~ 需要请评论或私QQ:3096524043(有偿~~) 一、数码管驱动 由真值表生成电路 二、四位无符号比较器设计 三、8位无符号比较器设计 四、一位2路选择器设计 五、八位2路选择器设计 六、BCD双向计数器状态机设计 七、BCD双向计数器输出函数设计 ...

FindXY的博客 1万+

HDU 5936 Difference 【中途相遇法】(2016年中国大学生程序设计竞赛(杭州))

Difference Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 62    Accepted Submission(s): 19 Problem Description Little Ruins

Coolxxx的博客 1682

来自工业界的知识库 RAG 服务(二),RagFlow 源码全流程深度解析

前面介绍过有道 QAnything 源码解析,通过深入了解工业界的知识库 RAG 服务,得到了不少调优 RAG 服务的新想法。因此本次趁热打铁,额外花费一点时间,深入研究了另一个火热的开源 RAG 服务RagFlow的完整实现流程,希望同样有所收获。首先依旧可以先从框架图入手,与常规的 RAG 架构进行一些比较可以看到右侧知识库被明显放大,同时最右侧详细介绍了文件解析的各种手段,比如OCR等,这些在常规的 RAG 中可能会作为一个不起眼的。

易迟的专栏 2万+

HDU 中的数学题目

//Made by syx//Time : 2010年8月14日 16:20:34//// //1071 The area//可令抛物线表达式为y= a(x-x1)^2+y1;//直线表达式为y=kx+b;//面积可通过微积分来计算a(x-x1)^2+y1 -(kx+b)在x2到x3区间内的定积分的值则为面积结果。 #include <stdio.h&gt...

aikuang5947的博客 240

光学仿真案例(4) 基于纳米微粒激发平面波的米氏散射FDTD仿真模拟

本案例展示了一个基于纳米粒子激发平面波的米氏散射仿真模型(mie scattering),计算其散射和吸收截面、局域场增强和远场散射分布,同时将截面和远场结果与解析解进行了比较,验证了仿真模拟的准确性。

q895235273的博客 3593

结构函数分析与 JESD51-14 标准详解

结构函数(Structure Function)是将器件瞬态热响应曲线(冷却曲线)通过数学变换,转换为热阻(Rth)与热容(Cth)沿热流路径一维分布的图形化分析方法。它能“看到”热量从结(Junction)到壳(Case)或环境的过程中,经过每一层结构时的热学特性。

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

2016ccpc杭州赛 hdu 5934 B.Bomb

Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 58    Accepted Submission(s): 27 Problem Description There are N bombs needi

overload1997 519

电磁场仿真软件:COMSOL Multiphysics_(17).时域与频域分析

时域和频域分析是电磁场仿真中非常重要的两种方法,每种方法都有其独特的应用场景和优势。时域分析适用于瞬态响应和宽带信号的分析,而频域分析则适用于稳态响应和窄带信号的分析。在COMSOL Multiphysics中,通过合理设置物理场接口、材料属性、边界条件、网格划分和求解器,可以高效地进行这两种分析,并通过傅里叶变换将时域结果转换为频域结果,进一步拓展仿真应用的范围。合理的性能优化措施,如网格划分优化和并行计算,可以显著提高仿真的效率和准确性。

kkchenjj的博客 1974

hdu3790 最短路径问题<最短路>

最短路径问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 19990    Accepted Submission(s): 5947 Problem Description 给你n个点,m条无向边,每条

leibniz_zhang的博客 466

glibc: GLIBC_2.28‘ not found

这个时候,应该怎么解决,因为当前运行的机器是低版本,而程序是高版本,解决方法,或者是将程序降级,或者将当前系统升级。在一个glibc的接口版本是GLIBC_2.25的lab上,运行不了在2.28上编译的程序。看哪一个方便,但是不能通过 临时复制libc.so 文件来解决,因为会遇到下面的错误。所以如果是简单解决就是按照低版本的应用程序,来适配当前系统的glibc版本。比如下面的程序运行提示。

mzhan017的博客 2399

使用 Python 爬取 Wikipedia 数据:抓取百科条目及其内容

维基百科的 API 提供了一些方便的接口,通过这些接口,我们可以轻松获取到维基百科的条目、类别、图片和其他相关信息。维基百科的 API 主要是基于 HTTP 请求的,通过向特定的 URL 发送 GET 请求来获取信息。:获取指定条目的内容。在本博客中,我们介绍了如何使用 Python 爬取维基百科的条目数据。通过使用 Wikipedia API 和网页抓取技术,我们能够高效地获取条目内容,并将其存储和分析。希望本篇教程能帮助你深入理解如何抓取和处理维基百科的数据。

2201_76125261的博客 475

LOI队内题单qwq

这是LOI队内试题单,emmm......虽然做了没三分之一_(:з」∠)_

Loi_Chairmanの博客 857

【20】方案管理器

方案管理器是Excel中一个非常强大且灵活的工具,适合用于多情景分析和比较。在复杂的决策过程中,它可以帮助用户快速管理和评估不同变量组合下的结果,从而优化决策过程。

学习,输出==》再学习再输出 1585

【hdu 5945】Fxx and game(递推|dp+单调队列)

待浮花浪蕊俱尽,伴君幽独

reverie_mjp的博客 409

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

hdu 5945 Fxx and game (dp+单调队列)

Fxx and game Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Submission(s): 347    Accepted Submission(s): 78 Problem Description Young theoretical c

clover_hxy的博客 1106

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【HDU 5945 Fxx and game】+ 单调队列

Fxx and game Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total Submission(s): 677 Accepted Submission(s): 159Problem Description Young theoretical compute

楚江枫 581

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【HDU 5944】【暴力】Fxx and string 【给定一个字符串s,求有多少个三元组(i,j,k)满足i,j,k是等比数列且s[i]=='y'&&s[j]=='r'&&s[k]=='x'】

传送门:http://acm.split.hdu.edu.cn/showproblem.php?pid=5944 描述: Fxx and string Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Submission(s): 103    Acc

魔笛手的博客 1224

【索引】BestCoder

BestCoder Round #88A. 5907 Find Q B. 5908 Abelian Period C. 5909 Tree Cutting D. 5910 Advanced Traffic System

Fsss 439

补题日记 + 总结 从2016-10-21至今

今年的区域赛告一段落,在大连和杭州侥幸取得一铜一金的成绩。同时博主也深刻认识到了自己的弱小,为了让自己变强大,开此贴对每天做的题进行统计,督促自己不要偷懒。   从2016-10-21日回到学校后第二天开始更新。   最近更新:2016-12-18 在这之后做的题会另行开贴给出简易题解,有意思的题会另行开贴。 ## ToDoList   12月全力突击文化课,尽量打每场比赛,暂...

weixin_30845171的博客 290

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

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

Mysssone的博客 187

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

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

wuqingyigexiaoba的博客 274

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

排序算法时间复杂度额外空间复杂度稳定性是否基于比较选择排序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的博客 557

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

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

2503_92261635的博客 19

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

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

2301_81429079的博客 643

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

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

wuqingyigexiaoba的博客 367
上一篇: 洛谷P1084 树上问题,思维,贪心,二分答案
下一篇: 洛谷P2261 整除分块模板
stdforces
博客等级 码龄4年 9粉丝 136原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值