题目来源:

https://ac.nowcoder.com/acm/contest/889/B

题意:

给定 p = 1 e 9 + 7 , 构 造 x , y 使 其 满 足 ( x + y ) m o d p = b , ( x ∗ y ) m o d p = c p=1e9+7,构造x,y使其满足(x+y) mod p = b,(x*y) mod p = c p=1e9+7,构造x,y使其满足(x+y)modp=b,(x∗y)modp=c .

思路:

不 考 虑 取 模 的 情 况 下 , ( x − y ) 2 = ( x + y ) 2 − 4 x y = b 2 − 4 c 。 不考虑取模的情况下,(x-y)^2=(x+y)^2-4xy=b^2-4c 。 不考虑取模的情况下,(x−y)2=(x+y)2−4xy=b2−4c。
在 取 模 的 意 义 下 , ( x − y ) 2 ≡ b 2 − 4 c ( m o d p ) 在取模的意义下,(x-y)^2\equiv b^2-4c (mod p) 在取模的意义下,(x−y)2≡b2−4c(modp)
因 为 a 是 模 p 的 二 次 剩 余 的 充 分 必 要 条 件 为 a ( p − 1 ) / 2 ≡ 1 ( m o d p ) 因为a是模p的二次剩余的充分必要条件为 a^{(p-1)/2}\equiv 1(mod p) 因为a是模p的二次剩余的充分必要条件为a(p−1)/2≡1(modp)
所 以 可 以 根 据 二 次 剩 余 求 出 x − y 所以可以根据二次剩余求出x-y 所以可以根据二次剩余求出x−y。

代码:

#include<bits/stdc++.h>
using namespace std;#define ll long long
const int mod=1e9+7,inv2=(mod+1)/2;int Pow(int x,int n) {int k = 1;while (n) {if (n & 1) k = (ll) k * x % mod;x = (ll) x * x % mod;n >>= 1;}return k;
}
int main() {int t;scanf("%d", &t);while (t--) {int a, b;scanf("%d%d", &a, &b);int k = (((ll) a * a - 4ll * b) % mod + mod) % mod;int v = Pow(k, (mod + 1) / 4); //根据二次剩余求出x-yif ((ll) v * v % mod != k) { //无解puts("-1 -1");continue;}int x = (ll) (v + a) * inv2 % mod;int y = (a - x + mod) % mod;if (x > y) printf("%d %d\n", y, x);else printf("%d %d\n", x, y);}return 0;
}

2019牛客暑期多校训练营(第九场)Quadratic equation(二次剩余相关推荐

  1. 2020牛客暑期多校训练营(第九场)E题 Groundhog Chasing Death

    题意 计算 ∏ i = a b ∏ j = c d g c d ( x i , y j ) \prod_{i=a}^{b}\prod_{j=c}^{d}gcd(x^i,y^j) i=a∏b​j=c∏d ...

  2. 2019牛客暑期多校训练营(第五场)C generator 2 (BSGS)

    2019牛客暑期多校训练营(第五场)C generator 2 思路 x0=x0x_0 = x_0x0​=x0​ x1=a∗x0∗bx_1 = a * x_0 * bx1​=a∗x0​∗b x2=a∗ ...

  3. 2019牛客暑期多校训练营(第四场)----E- triples II

    首先发出题目链接: 链接:https://ac.nowcoder.com/acm/contest/884/E 来源:牛客网 涉及:位运算,容斥定义,dp 点击这里回到2019牛客暑期多校训练营解题-目 ...

  4. 2019牛客暑期多校训练营(第三场)H.Magic Line

    2019牛客暑期多校训练营(第三场)H.Magic Line 题目链接 题目描述 There are always some problems that seem simple but is diff ...

  5. 2019牛客暑期多校训练营(第九场)H Cutting Bamboos(主席树+二分)

    链接:https://ac.nowcoder.com/acm/contest/889/H 来源:牛客网 题目描述 There are n bamboos arranged in a line. The ...

  6. 2019牛客暑期多校训练营(第九场)A——The power of Fibonacci(循环节+中国剩余定理(互质)||广义BM)

    链接:https://ac.nowcoder.com/acm/contest/889/A 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言5242 ...

  7. 【2019牛客暑期多校训练营(第二场) - H】Second Large Rectangle(单调栈,全1子矩阵变形)

    题干: 链接:https://ac.nowcoder.com/acm/contest/882/H 来源:牛客网 题目描述 Given a N×MN \times MN×M binary matrix. ...

  8. 2019牛客暑期多校训练营(第一场)E-ABBA(dp)

    链接:https://ac.nowcoder.com/acm/contest/881/E 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 524288K,其他语言1048 ...

  9. 2019牛客暑期多校训练营(第一场)

    传送门 参考资料: [1]:官方题解(提取码:t050 ) [2]:标程(提取码:rvxr ) [3]:牛客题解汇总 A.Equivalent Prefixes(单调栈) •题意 定义两个数组 u,v ...

  10. 2019牛客暑期多校训练营(第一场) A Equivalent Prefixes ( st 表 + 二分+分治)

    链接:https://ac.nowcoder.com/acm/contest/881/A 来源:牛客网 Equivalent Prefixes 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/ ...

最新文章

  1. Selenium 下拉框处理
  2. 详解进程的虚拟内存,物理内存,共享内存
  3. 1、cocos2d-x环境安装
  4. 重磅!《Apache Flink 十大技术难点实战》发布
  5. 2021-09-01
  6. oracle+dg常用命令,DG 日常管理命令汇总
  7. 深度学习TensorFlow生产环境部署(模型部署篇)
  8. 使用XShell连接Cygwin
  9. ipad录屏软件_如何在 Mac 上优雅的截图和录屏
  10. uni-app横屏设置
  11. Flutter开发:使用SafeArea(安全区域)
  12. 学习编程,既要仰望星空,又要脚踏实地
  13. Python实现人脸识别检测,对主播进行颜值排行
  14. 创业冲突的五种解决方法是_避免创业合伙人之间发生冲突的四种方法
  15. 区块链-高级密钥和地址
  16. Warshall算法
  17. lol美服服务器修改密码,如何修改LOL美服密码?英雄联盟美服账号密码和邮箱修改教程...
  18. 前端接收list的情况 (批量添加)出现这个错说明不是传参错误,是解析错误
  19. C语言实现银行ATM存取款系统 | 附源码
  20. qconf 配置中心 php,QConf

热门文章

  1. leecode:977. 有序数组的平方
  2. php代码转换工具,推荐几款格式化工具以及代码转换工具
  3. matlab怎么定义矩阵函数,怎么在matlab定义一个函数,而这个函数输入值是矩阵,并且输出的值也是相应的矩阵?...
  4. 2021年电工(初级)报名考试及电工(初级)理论考试
  5. 使用Python和C++的写数据结构和算法
  6. VS2022换主题和背景
  7. 计算机图形学-曲线和曲面
  8. 卫宁、智云的医疗SaaS出路:纵深、拓宽
  9. 20_TodoList案例
  10. 苹果手机时间怎么改成24小时制