1204

大体推推 会出来这个式子 x(x-1) = k*n;n = p*q ;x(x-1)%(p*q)==0;

因为p,q都为素数 那也就是说x和x-1中必定包含这两个数 而且一个里面只能有一个 不然会大于等于N

当上面的k=0时 x=0||x=1 这是固定的

然后 {x-pi=0; (x-1)-qi = 1}化这一组 就会变成pi-qi=1 这就变成了扩展欧几里得 必定存在一组解 解出来带入一下 注意一下负数就可以了 下一组同样这样计算

{x-pi=1; (x-1)-qi = 0}

 #include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
#include<cmath>
#include<map>
using namespace std;
#define N 35000
#define LL long long
int p[N],g;
map<int,int>f;
void init()
{
int i,j;
for(i = ; i <= ; i++)
if(!f[i])
{
for(j = i+i ; j < N ; j+=i)
f[j] = ;
}
for(i = ; i < N ; i++)
if(!f[i])
p[++g] = i;
}
void exgcd(int a,int b,int &x,int &y)
{
if(b==)
{
x=;y=;
return ;
}
exgcd(b,a%b,x,y);
int t = x;
x = y;
y = t-a/b*y;
}
int main()
{
int k,n,x,y,a,b,i;
init();
cin>>k;
while(k--)
{
cin>>n;
int tx = sqrt(n*1.0);
for(i = ; i <= g ; i++)
{
int o = p[i];
if(n%o==)
{
a = o;
b = n/o;
break;
}
if(o>tx) break;
}
exgcd(a,b,x,y);
int x1 = x<? a*x+a*b:a*x;
exgcd(b,a,x,y);
int x2 = x<? b*x+b*a:b*x;
printf("0 1 %d %d\n",min(x1,x2),max(x1,x2));
}
return ;
}

URAL1204. Idempotents(扩展欧几里得)的更多相关文章

  1. URAL 1204. Idempotents (扩展欧几里得)

    题目链接 题意 : 给你一个同余方程, x*x ≡ x  (mod n),让你求出所有的小于n的x. 思路 : 先来看同余的概念 :给定一个正整数m,如果两个整数a和b满足a-b能被m整除,即m|(a ...

  2. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) C.Ray Tracing (模拟或扩展欧几里得)

    http://codeforces.com/contest/724/problem/C 题目大意: 在一个n*m的盒子里,从(0,0)射出一条每秒位移为(1,1)的射线,遵从反射定律,给出k个点,求射 ...

  3. UVA 12169 Disgruntled Judge 枚举+扩展欧几里得

    题目大意:有3个整数 x[1], a, b 满足递推式x[i]=(a*x[i-1]+b)mod 10001.由这个递推式计算出了长度为2T的数列,现在要求输入x[1],x[3],......x[2T- ...

  4. UVA 10090 Marbles 扩展欧几里得

    来源:http://www.cnblogs.com/zxhl/p/5106678.html 大致题意:给你n个球,给你两种盒子.第一种盒子每个盒子c1美元,可以恰好装n1个球:第二种盒子每个盒子c2元 ...

  5. POJ 1061 青蛙的约会 扩展欧几里得

    扩展欧几里得模板套一下就A了,不过要注意刚好整除的时候,代码中有注释 #include <iostream> #include <cstdio> #include <cs ...

  6. 【64测试20161112】【Catalan数】【数论】【扩展欧几里得】【逆】

    Problem: n个人(偶数)排队,排两行,每一行的身高依次递增,且第二行的人的身高大于对应的第一行的人,问有多少种方案.mod 1e9+9 Solution: 这道题由1,2,5,14 应该想到C ...

  7. poj 2891 扩展欧几里得迭代解同余方程组

    Reference: http://www.cnblogs.com/ka200812/archive/2011/09/02/2164404.html 之前说过中国剩余定理传统解法的条件是m[i]两两互 ...

  8. poj 2142 扩展欧几里得解ax+by=c

    原题实际上就是求方程a*x+b*y=d的一个特解,要求这个特解满足|x|+|y|最小 套模式+一点YY就行了 总结一下这类问题的解法: 对于方程ax+by=c 设tm=gcd(a,b) 先用扩展欧几里 ...

  9. poj 1061 扩展欧几里得解同余方程(求最小非负整数解)

    题目可以转化成求关于t的同余方程的最小非负数解: x+m*t≡y+n*t (mod L) 该方程又可以转化成: k*L+(n-m)*t=x-y 利用扩展欧几里得可以解决这个问题: eg:对于方程ax+ ...

随机推荐

  1. [Js/Jquery]天气接口简单使用

    写在前面 今天在群里有朋友使用一个天气api,觉得挺实用的,就记录一下.省的以后再花费功夫去找. 地址:http://www.k780.com/api,在这个网站提供了实用的几种接口,比如查询ip,天 ...

  2. Apache CXF实现Web Service(5)—— GZIP使用

    Apache CXF实现Web Service(5)-- GZIP使用 参考来源: CXF WebService整合Spring Apache CXF实现Web Service(1)--不借助重量级W ...

  3. BZOJ1821: [JSOI2010]Group 部落划分

    这题乍看很吓人,其实就是一个贪心. 每次取最近的两个点所在的块合并,直到只剩下k块,输出答案. /*************************************************** ...

  4. SELINUX设为Disable 影响java SSH工具包Jsch 0.1.49.jar的一个案例

    最近项目中遇到一个典型事件,当RHEL 的SELINUX设为DISABLE时 使用JAVA的Jsch 库调用SSH命令时将随机返回空字符串,我使用的版本是0.1.49,最新版本0.1.51未测试. 关 ...

  5. 时序列数据库武斗大会之 OpenTSDB 篇

    [编者按] 刘斌,OneAPM后端研发工程师,拥有10多年编程经验,参与过大型金融.通信以及Android手机操作系的开发,熟悉Linux及后台开发技术.曾参与翻译过<第一本Docker书> ...

  6. 由浅入深了解Thrift之微服务化应用架构

    为什么选择微服务 一般情况下,业务应用我们都会采用模块化的分层式架构,所有的业务逻辑代码最终会在一个代码库中并统一部署,我们称这种应用架构为单体应用. 单体应用的问题是,全部开发人员会共享一个代码库, ...

  7. HDU 2852 KiKi's K-Number(树状数组+二分搜索)

    题意:给出三种操作 0 e:将e放入容器中 1 e:将e从容器中删除,若不存在,则输出No Elment! 2 a k:搜索容器中比a大的第k个数,若不存在,则输出Not Find! 思路:树状数组+ ...

  8. POJ 1455

    /* 冒泡排序n*(n-1)/2; */ #include <iostream> using namespace std; int main() { //freopen("acm ...

  9. Hibernate3.6中文手册

    前言 1. 教程 1.1. 第一部分 - 第一个 Hibernate 应用程序 1.1.1. 设置 1.1.2. 第一个 class 1.1.3. 映射文件 1.1.4. Hibernate 配置 1 ...

  10. C#中的Delegate

    谈C#中的Delegate http://www.cnblogs.com/hyddd/archive/2009/07/26/1531538.html