【BZOJ 1406】【AHOI 2007】密码箱
来源:互联网 发布:日本对中国文化知乎 编辑:程序博客网 时间:2024/05/29 15:15
设:x^2=kn+1
移项:(x+1)(x-1)=kn
令x+1=k1n1,x-1=k2n2,其中k1k2=k,n1n2=n
然后在n的因子中枚举n1,再枚举k1,判断一下是否存在k2,如果存在就是一个合法解,扔到set里面排序去重。
#include<set>#include<cmath>#include<cstdio>#include<vector>#include<queue>#include<cstring>#include<iomanip>#include<stdlib.h>#include<iostream>#include<algorithm>#define ll long long#define inf 1000000000#define mod 1000000007#define N 100000#define fo(i,a,b) for(i=a;i<=b;i++)#define fd(i,a,b) for(i=a;i>=b;i--)using namespace std;int n,n1,n2,k1,x;set<int> s;int main(){ scanf("%d",&n); fo(n2,1,n) if (n2*n2>n) break; else { if (n % n2) continue; n1 = n / n2; fo(k1,0,n/n1) { x = n1 * k1 + 1; if (x > n) break; if ((x+1) % n2 == 0) s.insert(x); } fo(k1,1,n/n1) { x = n1 * k1 - 1; if (x > n) break; if ((x-1) % n2 == 0) s.insert(x); } } if (!s.size()) printf("None\n"); set<int>::iterator i; for(i = s.begin();i != s.end(); i++) printf("%d\n",*i); return 0;}
0 0
- 【BZOJ 1406】【AHOI 2007】密码箱
- bzoj 1406: [AHOI2007]密码箱
- BZOJ 1406: [AHOI2007]密码箱
- BZOJ 1406 AHOI2007 密码箱 数论
- bzoj 1406: [AHOI2007]密码箱 数学
- BZOJ-1406-密码箱-AHOI2007-数学
- BZOJ 1406 [AHOI2007]密码箱 数论
- [数论] BZOJ 1406 [AHOI2007]密码箱
- BZOJ 1406: [AHOI2007]密码箱 数论
- bzoj 1406: [AHOI2007]密码箱 数学
- 密码箱 BZOJ
- 【二次剩余】【bzoj 1406】: [AHOI2007]密码箱
- BZOJ系列1406《[AHOI2007]密码箱》题解
- 【BZOJ 4253】密码箱加强版
- 【AHOI 2013】【BZOJ 3236】作业
- [BZOJ 3238][AHOI 2013]差异
- HYSBZ 1406 密码箱
- HYSBZ 1406 密码箱【数学】
- .net的TreeView控件绑定数据库表建立树架构
- Centos7.2安装详解
- 在MYSQL上添加TokuDB引擎
- JAVA——字符串String
- 利用canvas,把多张图合并成一张图片
- 【BZOJ 1406】【AHOI 2007】密码箱
- 线性规划
- vSphere 6.5新功能
- 机器学习:金融领域的岗位需求
- JVM调优浅谈
- System里getProperty 方法获得系统参数
- Python 简单爬虫--获得网上的图片
- hive三种方式区别和搭建、HiveServer2环境搭建、HWI环境搭建和beeline环境搭建
- ocr识别图片文字,调用OneNote