2019牛客暑期多校训练营(第九场)Quadratic equation(二次剩余
题目来源:
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(二次剩余相关推荐
- 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∏bj=c∏d ...
- 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∗ ...
- 2019牛客暑期多校训练营(第四场)----E- triples II
首先发出题目链接: 链接:https://ac.nowcoder.com/acm/contest/884/E 来源:牛客网 涉及:位运算,容斥定义,dp 点击这里回到2019牛客暑期多校训练营解题-目 ...
- 2019牛客暑期多校训练营(第三场)H.Magic Line
2019牛客暑期多校训练营(第三场)H.Magic Line 题目链接 题目描述 There are always some problems that seem simple but is diff ...
- 2019牛客暑期多校训练营(第九场)H Cutting Bamboos(主席树+二分)
链接:https://ac.nowcoder.com/acm/contest/889/H 来源:牛客网 题目描述 There are n bamboos arranged in a line. The ...
- 2019牛客暑期多校训练营(第九场)A——The power of Fibonacci(循环节+中国剩余定理(互质)||广义BM)
链接:https://ac.nowcoder.com/acm/contest/889/A 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言5242 ...
- 【2019牛客暑期多校训练营(第二场) - H】Second Large Rectangle(单调栈,全1子矩阵变形)
题干: 链接:https://ac.nowcoder.com/acm/contest/882/H 来源:牛客网 题目描述 Given a N×MN \times MN×M binary matrix. ...
- 2019牛客暑期多校训练营(第一场)E-ABBA(dp)
链接:https://ac.nowcoder.com/acm/contest/881/E 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 524288K,其他语言1048 ...
- 2019牛客暑期多校训练营(第一场)
传送门 参考资料: [1]:官方题解(提取码:t050 ) [2]:标程(提取码:rvxr ) [3]:牛客题解汇总 A.Equivalent Prefixes(单调栈) •题意 定义两个数组 u,v ...
- 2019牛客暑期多校训练营(第一场) A Equivalent Prefixes ( st 表 + 二分+分治)
链接:https://ac.nowcoder.com/acm/contest/881/A 来源:牛客网 Equivalent Prefixes 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/ ...
最新文章
- Selenium 下拉框处理
- 详解进程的虚拟内存,物理内存,共享内存
- 1、cocos2d-x环境安装
- 重磅!《Apache Flink 十大技术难点实战》发布
- 2021-09-01
- oracle+dg常用命令,DG 日常管理命令汇总
- 深度学习TensorFlow生产环境部署(模型部署篇)
- 使用XShell连接Cygwin
- ipad录屏软件_如何在 Mac 上优雅的截图和录屏
- uni-app横屏设置
- Flutter开发:使用SafeArea(安全区域)
- 学习编程,既要仰望星空,又要脚踏实地
- Python实现人脸识别检测,对主播进行颜值排行
- 创业冲突的五种解决方法是_避免创业合伙人之间发生冲突的四种方法
- 区块链-高级密钥和地址
- Warshall算法
- lol美服服务器修改密码,如何修改LOL美服密码?英雄联盟美服账号密码和邮箱修改教程...
- 前端接收list的情况 (批量添加)出现这个错说明不是传参错误,是解析错误
- C语言实现银行ATM存取款系统 | 附源码
- qconf 配置中心 php,QConf