洛谷P4598 解高次方程,数论

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

题意:

给出序列[a0,a2,a3,...,an][a_{0},a_{2},a_{3},...,a_{n}][a0​,a2​,a3​,...,an​],求方程
a0+a1x+a2x2+...+anxn=0 a_{0}+a_{1}x+a_{2}x^{2}+...+a_{n}x^{n}=0 a0​+a1​x+a2​x2+...+an​xn=0
的所有有理数解

Solution:

设x=pqx=\frac{p}{q}x=qp​是一个解,并且gcd(p,q)=1gcd(p,q)=1gcd(p,q)=1,代入得到
∑i=0nai(pq)i=0 \sum_{i=0}^{n}a_{i}(\frac{p}{q})^{i}=0 i=0∑n​ai​(qp​)i=0
通分得到
∑i=0naipiqn−i=0 \sum_{i=0}^{n}a_{i}p^{i}q^{n-i}=0 i=0∑n​ai​piqn−i=0
在模ppp时,有
∑i=0naipiqn−i≡0 (mod p)⇒a0qn≡0 (mod p) \sum_{i=0}^{n}a_{i}p^{i}q^{n-i} \equiv 0\ (mod\ p)\Rightarrow a_{0}q^{n}\equiv 0\ (mod\ p) i=0∑n​ai​piqn−i≡0 (mod p)⇒a0​qn≡0 (mod p)
在模qqq时,有
∑i=0naipiqn−i≡0 (mod q)⇒anpn≡0 (mod q) \sum_{i=0}^{n}a_{i}p^{i}q^{n-i} \equiv 0\ (mod\ q)\Rightarrow a_{n}p^{n}\equiv 0\ (mod\ q) i=0∑n​ai​piqn−i≡0 (mod q)⇒an​pn≡0 (mod q)
由于gcd(p,q)=1gcd(p,q)=1gcd(p,q)=1,于是一定存在
p∣a0,q∣an p|a_{0},q|a_{n} p∣a0​,q∣an​
只需要枚举a0,ana_{0},a_{n}a0​,an​的因子分别作为p,qp,qp,q,然后检查原式是否成立即可。原式可能非常大,一种检验的方法是在多模数下运算值都为000

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

using ll=long long;
const int N=105,inf=0x3fffffff;
const long long INF=0x3fffffffffffffff,mod1=1e9+7,mod2=1e9+9;

template<class T>
T abs(T x){return x>=0?x:-x;}

int n,a[N];
vector<pair<int,int>>ans;

ll qpow(ll a,ll b,ll mod)
{
    ll ret=1,base=a;
    while(b)
    {
        if(b&1) ret=ret*base%mod;
        base=base*base%mod;
        b>>=1;
    }
    return ret;
}

ll qm(ll x,ll mod)
{
    return (x%mod+mod)%mod;
}

bool check(int p,int q,ll mod)
{
    ll ret=0;
    for(int i=0;i<=n;i++) ret=(ret+qm(1ll*a[i]*qpow(p,i,mod)%mod*qpow(q,n-i,mod)%mod,mod))%mod;
    return ret==0;
}

void solve(int p,int q)
{
    int tmp=__gcd(abs(p),abs(q));
    p/=tmp; q/=tmp;
    if(check(p,q,mod1)&&check(p,q,mod2)) ans.push_back(make_pair(p,q));
}

int main()
{
    #ifdef stdjudge
        freopen("in.txt","r",stdin);
    #endif
    cin>>n;
    for(int i=0;i<=n;i++)
    {
        cin>>a[i];
        if(a[i]==0) n--,i--,ans.push_back(make_pair(0,1));
    }
    for(int i=1,limit1=sqrt(abs(a[0]));i<=limit1;i++)
    {
        if(a[0]%i) continue;
        for(int j=1,limit2=sqrt(abs(a[n]));j<=limit2;j++)
        {
            if(a[n]%j||__gcd(i,j)!=1) continue;
            solve(i,j); solve(-i,j);
            solve(a[0]/i,j); solve(-a[0]/i,j);
            solve(i,a[n]/j); solve(-i,a[n]/j);
            solve(a[0]/i,a[n]/j); solve(-a[0]/i,a[n]/j);
        }
    }
    for(auto i:ans)
    {
        if(i.first<0&&i.second<0) i.first=-i.first,i.second=-i.second;
        else if(i.second<0) i.first=-i.first,i.second=-i.second;
    }
    sort(ans.begin(),ans.end(),[&](pair<int,int>&x,pair<int,int>&y){
        return 1.0*x.first/x.second<1.0*y.first/y.second;
    });
    ans.erase(unique(ans.begin(),ans.end(),[&](pair<int,int>&x,pair<int,int>&y){
        return fabs(1.0*x.first/x.second-1.0*y.first/y.second)<1e-8;
    }),ans.end());
    cout<<ans.size()<<endl;
    for(auto i:ans)
    {
        if(i.first<0&&i.second<0) i.first=-i.first,i.second=-i.second;
        else if(i.second<0) i.first=-i.first,i.second=-i.second;
        if(i.second>1) printf("%d/%d\n",i.first,i.second);
        else printf("%d\n",i.first);
    }
    return 0;
}
5nm制程的CV5芯片实测:用它给无人机做8K拍摄和实时避障,功耗和性能到底怎么样? 本文深度评测了5nm制程的CV5芯片在无人机8K拍摄和实时避障中的表现。通过实测数据展示了CV5的异构计算架构、8K视频编码性能和CVflow®AI引擎的加速效果,同时提供了开发中的优化技巧和散热建议,为无人机开发者提供了实用的参考。 阅读详情

相关推荐

105. replace( )函数

【目录】

weixin_63986098的博客 1万+

洛谷P2312 解方程(NOIp2014)

乱搞 题目传送门 很奇怪的一个题目。。。 因为一个多项式=0,那么它mod一个质数也=0。 然后我们选几个质数,使劲膜就可以了。。。 计算的话用秦九韶算法就行。 似乎这种做法会t掉(常数巨大),需要加些优化。 当xxx modmodmod q≠0q≠0q≠0时,x+q∗kx+q∗kx+q*k modmodmod q≠0q≠0q≠0。于是再判一下就行 但是洛谷数据貌似很弱,所...

forezxl的博客 831

QCC308X/518X/309X加LDAC解码

QCC308X/518X/309X加LDAC解码。

Alex_886的博客 6605

洛谷刷题

即将要刷的题 背包DP:P4158,U79699,P1284,P1156,UVA11003,P4141,P3188,P4095,P1941,P2252,P1018,P1281,P1854,P1216,P1233,P2308,P1435 树形DP: P1040,P2016,P2018,P1122,P1877,P1273,P3304,P2585,P3360,P4084,P2986,P3177,SP14...

lonely_pinna的博客 1197

如何利用MATLAB建立Lotka-Volterra模型及其改进模型

今天我们要说的就是利用MATLAB对常微分方程进行数值求解的实例应用-Lotka-Volterra模型及其改进模型。20世纪40年代,Lotka(1925)和Volterra(1926)奠定了种间竞争关系的理论基础,他们提出的种间竞争方程对现代生态学理论的发展有着重大影响。

Nick的博客 2万+

基于计算机视觉的Windows自动化工具openclaw-win:从原理到实战

计算机视觉与自动化技术正深刻改变人机交互方式,其核心在于让机器具备“感知-决策-执行”的能力。通过图像采集与处理算法,程序可以识别屏幕上的特定元素;结合模拟输入技术,便能自动执行点击、拖拽等操作,形成完整的自动化闭环。这一技术栈在软件测试、数据采集、重复性办公任务等领域具有重要价值,能够显著提升工作效率。开源项目openclaw-win正是这一理念的工程实践,它整合了图像识别与模拟操作模块,为开发者提供了一个研究自动化技术的具体样本。项目涉及模板匹配、坐标计算等关键技术点,并需处理屏幕适配、操作延迟等实际问

weixin_28745975的博客 324

当PsychicBoom_发觉自己是个大SB的时候……

这些题都是没ac调了好久发现是sb错误的题……、 想清楚再写题!!! 2019.4.18 洛谷P5155 [USACO18DEC]Balance Beam 转移方程\((a[l[i]]*(r[i]-i)+a[r[i]]*(i-l[i]))/(r[i]-l[i])\)写成\((a[l[i]]*(i-l[i])+a[r[i]]*(r[i]-i))/(r[i]-l[i])\) 100pt->9p...

weixin_34283445的博客 87

PLC编程入门基础知识

PLC即为可编程逻辑控制器,实质是一种专用于工业控制的计算机,其硬件结构基本上与微型计算机相同。

SANRENYIXING的博客 2万+

当我被送退役的时候……

这些题都是没ac调了好久发现是sb错误的题……、 想清楚再写题!!! 2019.4.18 洛谷P5155 [USACO18DEC]Balance Beam 转移方程\((a[l[i]]*(r[i]-i)+a[r[i]]*(i-l[i]))/(r[i]-l[i])\)写成\((a[l[i]]*(i-l[i])+a[r[i]]*(r[i]-i))/(r[i]-l[i])\) 100pt-&...

abbgqna17764的博客 172

S32K344 Flash Driver实战:手把手教你实现任意字节写入与扇区解锁(含C40_Ip避坑指南)

本文深入解析S32K344微控制器的Flash驱动开发,重点解决C40_Ip驱动库的8字节对齐限制和扇区保护锁问题。通过实战案例和代码示例,详细介绍了如何实现任意字节写入、扇区解锁及性能优化策略,为Bootloader和OTA升级等应用提供可靠解决方案。

weixin_33713707的博客 431

高级电机控制场景实例:基于Simulink的永磁同步电机基于Luenberger观测器的弱磁控制仿真

本文基于Simulink实现表贴式永磁同步电机(SPMSM)的Luenberger观测器弱磁控制仿真,通过构建“观测-弱磁-控制”协同逻辑,突破传统矢量控制的基速限制。利用线性化模型设计观测器实时估计电流与磁链,结合电压极限约束动态注入负d轴电流,实现转速扩展至12000rpm(4倍基速),弱磁区电流THD低于3%,动态响应时间小于5ms,验证了高速运行下系统稳定性与鲁棒性。附完整建模步骤、MATLAB函数代码及性能分析,适用于电动汽车、机床等高速驱动场景,为高级电机控制提供可复现的技术范式。

amy_mhd的博客 31

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

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

Mysssone的博客 159

cursor AI代码编辑器IDE对接deepseek模型api;字节ai编辑器trae

参考: https://www.cursor.com/ https://platform.deepseek.com/https://www.cursor.com/下载安装后,注册账号登录即可 再高级里选择设置 再模型这注册模型: 模型名称一定要填正确,url地址填好,最后填上秘钥验证

weixin_42357472的博客 1万+

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

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

wuqingyigexiaoba的博客 216

Statistics and Machine Learning Toolbox

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

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

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

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

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

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

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

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

2503_92261635的博客 15

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

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

2301_81429079的博客 437

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

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

wuqingyigexiaoba的博客 362

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

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

2501_94316951的博客 136

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

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

weixin_44218929的博客 78

算法日常・每日刷题--<动态规划>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的博客 176

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

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

Keven_11的博客 308

不同的二叉搜索树

互不相同的二叉搜索树的种数,以 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就选错。

谁呀!的博客 381

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

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

wdf8088的博客 163

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

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

Jayson 博客 331
上一篇: 牛客P15428 约数个数定理,暴力枚举,贪心剪枝
下一篇: 洛谷P2312 秦九韶算法求多项式点值
stdforces
博客等级 码龄4年 9粉丝 136原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值