二次联通门 : BZOJ 1406: [AHOI2007]密码箱

/*
BZOJ 1406: [AHOI2007]密码箱 数论
要求 x^2 ≡ 1 (mod n)
可以转换为 x ^ 2 - k *n = 1
(x + 1) * (x - 1) = k * n
设 n = a * b
则 a * b | (x + 1) * (x - 1)
那么枚举b即可
*/
#include <cstdio>
#include <cmath>
#include <set>
typedef long long LL;
#define Set std :: set <LL> int main ()
{
LL N, a, b; scanf ("%lld", &N); register LL i, j;
int L = sqrt (N); Set Answer;
for (i = ; i <= L; ++ i)
if (N % i == )
{
a = i, b = N / i;
for (j = ; j <= N; j += b)
{
if ((j + ) % a == && j + < N) Answer.insert (j + );
if ((j - ) % a == && j - >= ) Answer.insert (j - );
}
}
if (Answer.size () == ) return printf ("None"), ;
for (Set :: iterator i = Answer.begin (); i != Answer.end (); ++ i)
printf ("%lld\n", *i);
return ;
}

BZOJ 1406: [AHOI2007]密码箱的更多相关文章

  1. bzoj 1406: [AHOI2007]密码箱 二次剩餘

    1406: [AHOI2007]密码箱 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 701  Solved: 396[Submit][Status] D ...

  2. BZOJ 1406: [AHOI2007]密码箱( 数论 )

    (x+1)(x-1) mod N = 0, 枚举N的>N^0.5的约数当作x+1或者x-1... ------------------------------------------------ ...

  3. BZOJ 1406: [AHOI2007]密码箱 exgcd+唯一分解定理

    推出来了一个解法,但是感觉复杂度十分玄学,没想到秒过~ Code: #include <bits/stdc++.h> #define ll long long #define N 5000 ...

  4. 1406: [AHOI2007]密码箱

    1406: [AHOI2007]密码箱 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1591  Solved: 944[Submit][Status][ ...

  5. 【BZOJ】1406: [AHOI2007]密码箱

    http://www.lydsy.com/JudgeOnline/problem.php?id=1406 题意:求$0<=x<n, 1<=n<=2,000,000,000, 且 ...

  6. BZOJ_1406_[AHOI2007]密码箱_枚举+数学

    BZOJ_1406_[AHOI2007]密码箱_枚举+数学 Description 在一次偶然的情况下,小可可得到了一个密码箱,听说里面藏着一份古代流传下来的藏宝图,只要能破解密码就能打开箱子,而箱子 ...

  7. 洛谷——P4296 [AHOI2007]密码箱

    P4296 [AHOI2007]密码箱 密码x大于等于0,且小于n,而x的平方除以n,得到的余数为1. 求这个密码,$1<=n<=2,000,000,000$ 暴力枚举,数据有点儿水$O( ...

  8. 【BZOJ 1406】 [AHOI2007]密码箱

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] \(x^2%n=1\) \(x^2-1 = k*n\) \((x+1)*(x-1) % n == 0\) 设\(n=a*b\) 对于 ...

  9. BZOJ 1406 密码箱

    直接两层枚举就行了. 避免排序可以用set. #include<iostream> #include<cstdio> #include<cstring> #incl ...

随机推荐

  1. 使用QMetaObject获取类的属性

    const QMetaObject *metaobject = object->metaObject(); int count = metaobject->propertyCount(); ...

  2. go 学习笔记(4) import

    package main import ( f "fmt" ) const NAME string = "imooc" var a string = " ...

  3. Java JDK1.8源码学习之路 1 Object

    写在最前 对于一个合格的后端程序员来说,现行的流行框架早已经能胜任基本的企业开发,Springboot 任何的框架都把重复的工作更佳简单/优化的解决掉,但是完全陷入在这样的温水里面, 好比温水煮青蛙, ...

  4. 保研经验帖----江西师范大学 to 华中科技大学

    呼,距离拿到华科cs的offer也有一段时间,有好几次准备动手写这篇经验帖,但就是理不清自己想表达什么,今早起来状态还不错,洗漱的时候思路居然通透了,哈哈哈~ 一.基本情况 先简单介绍笔者的一些基本情 ...

  5. JavaNetty心跳监控

    import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Map; import java ...

  6. JavaNetty

    Netty的简单使用: import io.netty.bootstrap.Bootstrap; import io.netty.buffer.Unpooled; import io.netty.ch ...

  7. HBuilder 方便局域网访问调试

    同一个局域网,通过IP不能访问我本地的项目,各种测试发现原来是防火墙的问题: 这里附上参考文档:内置web服务器被防火墙禁用导致预览和运行异常的解决方案

  8. java通过poi读取excel中的日期类型数据或自定义类型日期

    Java 读取Excel表格日期类型数据的时候,读出来的是这样的  12-十月-2019,而Excel中输入的是 2019/10/12 或 2019-10-12 poi处理excel时,当excel没 ...

  9. springboot学习入门简易版六---springboot2.0整合全局捕获异常及log4j日志(12-13)

    使用Aop实现 1创建异常请求 在原有项目基础上,jspController中创建一个可能发生异常的请求: /** * 全局捕获异常测试 * @param i * @return */ @Reques ...

  10. 关于MySql升级JDBC架包导致时区问题报错(The server time zone value '?й???????' is unrecognized or represents more than one time zone)

    报错信息: The server time zone value '?й???????' is unrecognized or represents more than one time zone. ...