【BZOJ】【1406】【AHOI2007】密码箱
数论
Orz iwtwiioi
果然数论很捉鸡>_>完全不知道怎么下手
$$x^2 \equiv 1 \pmod n \rightarrow (x+1)*(x-1)=k*n $$
所以,我们得到$$n | (x+1)(x-1)$$
那么有什么用呢?注意到整除是个神奇的关系= =所以我们可以令$n=a*b$,那么对于每个x,一定有$a|(x+1) 且 b|(x-1)$ 或是 $a|(x-1) 且 b|(x+1)$
然后?我们可以$O(\sqrt{n})$枚举a,得到b,然而,x+1(或者x-1)是b的倍数!所以我们可以枚举这个倍数,再判断与它对应的x-1(或x+1)是否满足与a的整除关系,就可以找到x啦!
最后再用set判重……
Orzzzzzz……
太神了……
/**************************************************************
Problem: 1406
User: Tunix
Language: C++
Result: Accepted
Time:8 ms
Memory:1276 kb
****************************************************************/ //BZOJ 1406
#include<set>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#define rep(i,n) for(int i=0;i<n;++i)
#define F(i,j,n) for(int i=j;i<=n;++i)
#define D(i,j,n) for(int i=j;i>=n;--i)
#define pb push_back
using namespace std;
typedef long long LL;
set<LL> s;
set<LL>::iterator it;
int main(){
#ifndef ONLINE_JUDGE
freopen("1406.in","r",stdin);
freopen("1406.out","w",stdout);
#endif
LL n; scanf("%lld",&n);
for(LL i=;i*i<=n;i++) if (n%i==){
LL j=n/i,x;
for(LL k=;j*k+<n;k++){
x=j*k+;
if ((x+)%i==) s.insert(x);
}
for(LL k=;j*k-<n;k++){
x=j*k-;
if ((x-)%i==) s.insert(x);
}
}
if (!s.size()){puts("None");return ;}
for(it=s.begin();it!=s.end();it++)
printf("%lld\n",*it);
return ;
}
1406: [AHOI2007]密码箱
Time Limit: 5 Sec Memory Limit: 64 MB
Submit: 877 Solved: 509
[Submit][Status][Discuss]
Description
码的提示。经过艰苦的破译,小可可发现,这些图标表示一个数以及这个数与密码的关系。假设这个数是n,密码为x,那么可以得到如下表述:
密码x大于等于0,且小于n,而x的平方除以n,得到的余数为1。
小可可知道满足上述条件的x可能不止一个,所以一定要把所有满足条件的x计算出来,密码肯定就在其中。计算的过程是很艰苦的,你能否编写一个程序来帮助小
可可呢?(题中x,n均为正整数)
Input
Output
Sample Input
Sample Output
5
7
11
HINT
Source
【BZOJ】【1406】【AHOI2007】密码箱的更多相关文章
- BZOJ 1406: [AHOI2007]密码箱
二次联通门 : BZOJ 1406: [AHOI2007]密码箱 /* BZOJ 1406: [AHOI2007]密码箱 数论 要求 x^2 ≡ 1 (mod n) 可以转换为 x ^ 2 - k * ...
- bzoj 1406: [AHOI2007]密码箱 二次剩餘
1406: [AHOI2007]密码箱 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 701 Solved: 396[Submit][Status] D ...
- BZOJ 1406: [AHOI2007]密码箱( 数论 )
(x+1)(x-1) mod N = 0, 枚举N的>N^0.5的约数当作x+1或者x-1... ------------------------------------------------ ...
- BZOJ 1406: [AHOI2007]密码箱 exgcd+唯一分解定理
推出来了一个解法,但是感觉复杂度十分玄学,没想到秒过~ Code: #include <bits/stdc++.h> #define ll long long #define N 5000 ...
- 1406: [AHOI2007]密码箱
1406: [AHOI2007]密码箱 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1591 Solved: 944[Submit][Status][ ...
- 【BZOJ】1406: [AHOI2007]密码箱
http://www.lydsy.com/JudgeOnline/problem.php?id=1406 题意:求$0<=x<n, 1<=n<=2,000,000,000, 且 ...
- BZOJ_1406_[AHOI2007]密码箱_枚举+数学
BZOJ_1406_[AHOI2007]密码箱_枚举+数学 Description 在一次偶然的情况下,小可可得到了一个密码箱,听说里面藏着一份古代流传下来的藏宝图,只要能破解密码就能打开箱子,而箱子 ...
- 洛谷——P4296 [AHOI2007]密码箱
P4296 [AHOI2007]密码箱 密码x大于等于0,且小于n,而x的平方除以n,得到的余数为1. 求这个密码,$1<=n<=2,000,000,000$ 暴力枚举,数据有点儿水$O( ...
- 【BZOJ 1406】 [AHOI2007]密码箱
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] \(x^2%n=1\) \(x^2-1 = k*n\) \((x+1)*(x-1) % n == 0\) 设\(n=a*b\) 对于 ...
- BZOJ 1406 密码箱
直接两层枚举就行了. 避免排序可以用set. #include<iostream> #include<cstdio> #include<cstring> #incl ...
随机推荐
- 单列模式(data与business交互)
public class CommentsBusiness //Business { #region 单列模式 private static CommentBusiness instance; pri ...
- [leetcode]_Search Insert Position
题目:查找元素target插入一个数组中的位置. 代码: public int searchInsert(int[] A, int target) { int len = A.length; int ...
- JavaScript的闭包是什么意思以及作用和应用场景
JavaScript闭包 1.什么是闭包 百度百科对于闭包的解释是:闭包是指可以包含自由(未绑定到特定对象)变量的代码块:这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中 ...
- CentOS 7上的redis搭建
http://www.cnblogs.com/shanyou/archive/2012/07/14/2591881.html
- 容易被忽略的事----sql语句中select语句的执行顺序
关于Sql中Select语句的执行顺序,一直很少注意这个问题,对于关键字的使用也很随意,至于效率问题,因为表中的数据量都不是很大,所以也不是很在意. 今天在一次面试的时候自己见到了,感觉没一点的印象, ...
- 安装SRILM
参考博文:Ubuntu 64位系统下SRILM的配置详解 来源52nlp www.52nlp.cn 首先下载SRILM 解压缩到home即可 然后需要修改MakeFile文件: # SRILM = / ...
- moses:processPhraseTable被删除
今年一月,processPhraseTable被删除了,具体原因如下: https://www.mail-archive.com/moses-support@mit.edu/msg11372.html ...
- entityFramework使用 codefirst
新建项目 用nuget安装entityFramework,Install-Package Entityframework 建一个model和context //[Table("Custome ...
- bat完美关机命令
@echo off title OLIVER-COMPUTER mode con cols= lines= color 0d shutdown /a >nul >nul ver > ...
- jquery绑定事件失效的情况(转)
原文地址:http://www.thinksaas.cn/group/topic/348453/ jQuery中文api地址:http://www.jquery123.com/api/ jQuery官 ...