exgcd写错成功爆0:)

Input
第一行一个整数T,表示需要求解的方程数。
接下来T 行,每行三个整数:a; b; c 表示一个方程:
ax + by = c
Output
对于每个方程:
• 如果方程无解,输出No
• 如果方程有解,输出四个整数:x1 y1 x2 y2,表示两组解,其中x1 y1 表示x 是最小非负时对应的

解,其中x2 y2 表示y 是最小非负时的解。

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
long long t,x,y;
long long gcd(long long m,long long n)
{if (n==0)return m;return gcd(n,m%n);
}
long long exgcd(long long a,long long b,long long &x,long long &y)
{long long cd;if (b==0){x=1;y=0;return a;}else{long long x0,y0;cd=exgcd(b,a%b,x0,y0);x=y0;y=x0-(a/b)*y0;}return cd;
}
int main()
{freopen("modeq.in","r",stdin);freopen("modeq.out","w",stdout);scanf("%I64d",&t);while (t--){long long a,b,c;scanf("%I64d%I64d%I64d",&a,&b,&c);long long d=gcd(a,b);if (c%d!=0){printf("No\n");continue;}else{exgcd(a,b,x,y);long long x1=c/d*x;long long y1=c/d*y;long long x2=c/d*x;long long y2=c/d*y;x1=(x1%abs(b/d)+abs(b/d))%abs(b/d);y1=(c-a*x1)/b;printf("%I64d %I64d ",x1,y1);y2=(y2%abs(a/d)+abs(a/d))%abs(a/d);x2=(c-y2*b)/a;printf("%I64d %I64d\n",x2,y2);}}return 0;
}

我们来个孙子定理完整版。
可能现在还来不起。。。我们就先假设mi 两两互质吧。
Input
第一行一个整数T,表示需要求解的方程组数。
接下来T 个方程组,对于每个方程组:
第1 行一个整数n,表示方程组对应的方程个数。
接下来n 行,第i 行两个数:ai mi 表示第i 个方程:
x ai (mod mi)
Output

对于每个方程:输出最小非负整数解。

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
long long t,n;
vector<long long> vm;
vector<long long> va;
long long exgcd(long long a,long long b,long long &x,long long &y)
{if (b==0){x=1;y=0;return a;}long long x1,y1;long long cd=exgcd(b,a%b,x1,y1);x=y1;y=x1-(a/b)*y1;return cd;
}
long long ins(long long num,long long mod)
{long long x,y;exgcd(num,mod,x,y);return (x%mod+mod)%mod;
}
long long crt(vector<long long> va,vector<long long> vm)
{long long x=0;long long len=(long long)va.size();long long M=1;for (int i=0;i<len;i++)M*=vm[i];for (int i=0;i<len;i++){long long ci=M/vm[i];long long ny=ins(ci,vm[i]);x=(x+va[i]*ny%M*ci%M)%M;}return x;
}
int main()
{freopen("crt.in","r",stdin);freopen("crt.out","w",stdout);scanf("%d",&t);while (t--){scanf("%d",&n);va.clear();vm.clear();for (int i=1;i<=n;i++){long long aa,mm;scanf("%I64d%I64d",&aa,&mm);va.push_back(aa);vm.push_back(mm);}printf("%I64d\n",crt(va,vm));}return 0;
}

我们来个递推精简版。求下面数列的第n 项:
f(0) = a0; f(1) = a1; f(2) = a2
f(n) = bf(n

数论 day 2 试题解析相关推荐

  1. 网络工程师历年试题解析(PDF文字版)2004-2009

    网络工程师历年试题解析(PDF文字 版)2004-2009 转载于:https://www.cnblogs.com/gavinhughhu/archive/2010/04/08/1706929.htm ...

  2. c# 多线程 执行事件 并发_C#.NET Thread多线程并发编程学习与常见面试题解析-1、Thread使用与控制基础...

    前言: 因为平时挺少用到多线程的,写游戏时都在用协程,至于协程那是另一个话题了,除了第一次学习多线程时和以前某个小项目有过就挺少有接触了,最近准备面试又怕被问的深入,所以就赶紧补补多线程基础. 网上已 ...

  3. 嵌入式linux面试题解析(二)——C语言部分三

    嵌入式linux面试题解析(二)--C语言部分三 1.下面的程序会出现什么结果 #include <stdio.h> #include <stdlib.h> #include ...

  4. linux嵌入式面试题合集,嵌入式linux面试题解析(一)——ARM部分二

    嵌入式linux面试题解析(一)--ARM部分二1.描述一下嵌入式基于ROM的运行方式基于RAM的运行方式有什么区别.基于RAM的运行方式:需要把硬盘和其他介质的代码先加载到ram中,加载过程中一般有 ...

  5. 美团Android开发工程师岗位职能要求,高级面试题+解析

    前言 不知道大家面试的时候,有没有遇到这种情况,面试工资谈的是10K,最后干着40K的活!说着冠冕堂皇,提升大家能力的话,做着死命压榨员工,996成了程序员心里的魔咒! 初级安卓开发工程师(10K-1 ...

  6. C#.NET Thread多线程并发编程学习与常见面试题解析-1、Thread使用与控制基础

    前言: 因为平时挺少用到多线程的,写游戏时都在用协程,至于协程那是另一个话题了,除了第一次学习多线程时和以前某个小项目有过就挺少有接触了,最近准备面试又怕被问的深入,所以就赶紧补补多线程基础. 网上已 ...

  7. 腾讯2016春招安全岗笔试题解析

    腾讯2016春招安全岗笔试题解析 昨天(4月2日)晚上7:00到9:00做了腾讯春招安全岗的笔试题.下面解析一下: 题目解析 1 在生成随机数前用当前时间设置随机数种子应该是安全的.如果程序用固定的数 ...

  8. 嵌入式linux面试题解析(四)——逻辑推理一

    嵌入式linux面试题解析(四)--逻辑推理一 1.谁是罪犯问题 一位法官在审理一起盗窃案时,对涉及到的四名嫌疑犯A.B.C.D进行了审问.四人分别供述如下: A:"罪犯在B.C.D三人之中 ...

  9. 嵌入式linux面试题库,嵌入式linux面试题解析(二)——C语言部分三

    嵌入式linux面试题解析(二)--C语言部分三 1.下面的程序会出现什么结果#include#include #include void getmemory(char *p){p=(char *) ...

  10. 2009年5月软件设计师考试试题解析全国首发

    [书名]软件设计师考试考前冲刺预测卷及考点解析:最新版 [作者]郭春柱 [ISBN]978-7-121-08407-2 [出版社]电子工业出版社 [出版日期]2009年8月 [定  价]39.50元 ...

最新文章

  1. vs报错 已经在 helpers.obj 中定义
  2. sql的执行顺序 (where、groupby、having等)
  3. setting an array element with a sequence.
  4. 如何看创建媒体日期_每天约4万个网约车投诉,看AI如何接招_媒体_澎湃新闻
  5. Android实现打开本地文件,Android 打开本地文件(示例代码)
  6. 20162303《程序设计与数据结构》第一周学习总结
  7. python在末尾加关闭程序_廖雪峰的Python教程教程-02
  8. varchar 求和 非数值_考研线性代数 解题方法汇总(非知识点汇总)
  9. Mysql 自增主键
  10. python 中读取yaml
  11. windows2003配置ftp服务器
  12. C++中的iostream和iostream.h
  13. GD32的flash读保护和写保护
  14. python爬取高匿代理IP(再也不用担心会进小黑屋了)
  15. 谷歌创始人拉里·佩奇不为人知的故事
  16. Loadrunner分析
  17. arduino如何加载OLED屏幕库
  18. 埋骨何须桑梓地,人生无处不青山!
  19. 傻瓜式制作在线热力图!只需三个步骤即可学会热力图的制作
  20. 关于WPS在Ubuntu 22.04无法运行的解决方案

热门文章

  1. TOGAF 架构内容框架
  2. 基于java网上购物系统论文,基于Java的网上购物系统的设计与实现_毕业设计(论文).doc...
  3. pdf annotator 中文版
  4. 《互联网公司各职位面试360度全方位解读》
  5. 计算机网络协议各协议的作用,计算机网络通信协议有哪些?作用是什么?
  6. 9008刷机工具_黔隆科技刷机教程OPPOR11忘记密码免刷机保资料解屏幕锁教程
  7. 手机号码正则表达式匹配
  8. Premiere Pro CC 2019破解教程
  9. db2的jdbc驱动
  10. puttygen生成公私钥_如何使用Puttygen生成腻子密钥?