博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二次剩余
阅读量:5806 次
发布时间:2019-06-18

本文共 1700 字,大约阅读时间需要 5 分钟。

类似fft,自定义一种复数,使得第二维的平方等于w。

然后就可以进行SAO操作了。

注意sgn要返回long long

例题:

1 #include 
2 #include
3 #include
4 5 typedef long long LL; 6 const int N = 100010; 7 8 LL w, MO; 9 10 inline int rd() {11 return (rand() * (1ll << 16) + rand()) % LONG_MAX;12 }13 14 struct cp {15 LL x, y;16 cp(LL X = 0, LL Y = 0) {17 x = X;18 y = Y;19 }20 inline cp operator *(const cp &W) const {21 return cp(x * W.x % MO + y * W.y % MO * w % MO, x * W.y % MO + y * W.x % MO);22 }23 inline cp operator %(const LL &W) const {24 return cp(x % W, y % W);25 }26 };27 28 template
inline T qpow(T a, LL b) {29 T ans(1);30 while(b) {31 if(b & 1) ans = ans * a % MO;32 a = a * a % MO;33 b = b >> 1;34 }35 return ans;36 }37 38 inline int sgn(LL x) {39 return qpow(x, (MO - 1) >> 1);40 }41 42 inline void solve() {43 LL n;44 scanf("%lld%lld", &n, &MO);45 n %= MO;46 if(MO == 2) {47 printf("%d\n", n);48 return;49 }50 if(sgn(n) == MO - 1) {51 printf("No root\n");52 return;53 }54 LL a;55 while(1) {56 a = rd() % MO;57 w = (a * a % MO - n + MO) % MO;58 if(sgn(w) == MO - 1) break;59 }60 cp ans(a, 1);61 ans = qpow(ans, (MO + 1) >> 1);62 LL b = ans.x, c = MO - b;63 if(b > c) std::swap(b, c);64 printf("%lld %lld \n", b, c);65 return;66 }67 68 int main() {69 srand(19384);70 int T;71 scanf("%d", &T);72 while(T--) solve();73 return 0;74 }
AC代码

 

转载于:https://www.cnblogs.com/huyufeifei/p/10560629.html

你可能感兴趣的文章
《Linux内核修炼之道》 之 高效学习Linux内核
查看>>
Java数据持久层框架 MyBatis之API学习九(SQL语句构建器详解)
查看>>
30分钟Git命令“从入门到放弃”
查看>>
nginx : TCP代理和负载均衡的stream模块
查看>>
MYSQL数据库间同步数据
查看>>
DevOps 前世今生 | mPaaS 线上直播 CodeHub #1 回顾
查看>>
iOS 解决UITabelView刷新闪动
查看>>
让前端小姐姐愉快地开发表单
查看>>
Dubbo笔记(四)
查看>>
Web前端JQuery入门实战案例
查看>>
java B2B2C Springboot电子商城系统- SSO单点登录之OAuth2.0 登出流程(3)
查看>>
12月26日云栖精选夜读:CDN新品发布:阿里云SCDN安全加速开放公测
查看>>
USB 通信原理
查看>>
7zZip zip RAR iOS
查看>>
date命令的详细用法!
查看>>
分布式存储ceph集群部署
查看>>
UiAutomator源码分析之UiAutomatorBridge框架
查看>>
python 开发之selenium
查看>>
Xcode3.2.5中找不到Mac OS X - Command Line Utility -...
查看>>
css的div垂直居中的方法,百分比div垂直居中
查看>>