<题目链接>

题目大意:

给你一些模数和余数,让你求出满足这些要求的最小的数的值。

解题分析:

中国剩余定理(模数不一定互质)模板题

  1. #include<stdio.h>
  2. using namespace std;
  3. #define ll long long
  4.  
  5. ll A[],B[];//B[i]为余数
  6. ll dg,ans;//dg为A[i]的最小公倍数 ans 为最小解
  7. void exgcd(ll a, ll b, ll &d, ll&x, ll &y)
  8. {
  9. if (!b) {d=a; x=; y=;}
  10. else
  11. {
  12. exgcd(b, a%b, d, y, x);
  13. y-=x*(a/b);
  14. }
  15. }
  16. ll gcd(ll a, ll b)
  17. {
  18. if (!b) return a;
  19. else gcd(b, a%b);
  20. }
  21.  
  22. ll china(ll n)
  23. {
  24. ll a,b,d,x,y,dm;
  25. ll c,c1,c2;
  26. a=A[]; c1=B[];
  27. for (int i=; i<n; i++)
  28. {
  29. b=A[i]; c2=B[i];
  30. exgcd(a, b, d, x, y);
  31. dm=b/d;
  32. c=c2-c1;
  33. if (c%d) return -;
  34. x=((x*c/d)%dm+dm)%dm;//x可能为负
  35. c1=a*x+c1;
  36. a=a*b/d;
  37. }
  38.  
  39. //求最小公倍数
  40. dg=a;//dg是最大公约数
  41. if (!c1)//考虑c1为0的情况
  42. {
  43. c1=;
  44. for (int i=; i<n; i++)
  45. {
  46. c1=c1*A[i]/gcd(c1, A[i]);
  47. }
  48. dg=c1;//此时dg为最小公倍数
  49. }
  50. return c1;//c1为最小的X
  51. }
  52.  
  53. int main(){
  54. int t;
  55. scanf("%d",&t);
  56. int ncase=;
  57. while(t--){
  58. int m;
  59. scanf("%d",&m);
  60.  
  61. for(int i=;i<m;i++)
  62. scanf("%lld",&A[i]);
  63. for(int i=;i<m;i++)
  64. scanf("%lld",&B[i]);
  65. ans=china(m); //利用模板找到满足条件的最小值
  66. printf("Case %d: %lld\n",++ncase,ans);
  67. }
  68. return ;
  69. }

2018-08-20

hdu 3579 Hello Kiki【中国剩余定理】(模数不要求互素)(模板题)的更多相关文章

  1. HDU 3579 Hello Kiki 中国剩余定理(合并方程

    题意: 给定方程 res % 14 = 5 res % 57 = 56 求res 中国剩余定理裸题 #include<stdio.h> #include<string.h> # ...

  2. hdu 3579 Hello Kiki (中国剩余定理)

    Hello Kiki Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  3. 中国剩余定理模数不互质的情况(poj 2891

    中国剩余定理模数不互质的情况主要有一个ax+by==k*gcd(a,b),注意一下倍数情况和最小 https://vjudge.net/problem/POJ-2891 #include <io ...

  4. HDU 5768 Lucky7 容斥原理+中国剩余定理(互质)

    分析: 因为满足任意一组pi和ai,即可使一个“幸运数”被“污染”,我们可以想到通过容斥来处理这个问题.当我们选定了一系列pi和ai后,题意转化为求[x,y]中被7整除余0,且被这一系列pi除余ai的 ...

  5. HDU 5768 Lucky7 (中国剩余定理 + 容斥 + 快速乘法)

    Lucky7 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5768 Description When ?? was born, seven crow ...

  6. hdu X问题 (中国剩余定理不互质)

    http://acm.hdu.edu.cn/showproblem.php?pid=1573 X问题 Time Limit: 1000/1000 MS (Java/Others)    Memory ...

  7. hdu 5446 Unknown Treasure 中国剩余定理+lucas

    题目链接 求C(n, m)%p的值, n, m<=1e18, p = p1*p2*...pk. pi是质数. 先求出C(n, m)%pi的值, 然后这就是一个同余的式子. 用中国剩余定理求解. ...

  8. hdu 3579 Hello Kiki

    不互质的中国剩余定理…… 链接http://acm.hdu.edu.cn/showproblem.php?pid=3579 #include<iostream>#include<st ...

  9. hdu 3579 Hello Kiki 不互质的中国剩余定理

    Hello Kiki Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Probl ...

随机推荐

  1. 内置函数id,返回内存地址

    a = 2 def b(): a = 3 print id(a) class c(): def __init__(self): print id(c) d =c() print id(d) print ...

  2. MYSQL和oracle 大小写问题

    MySQL的大小写问题 不是一个很大的问题,但是如果不了解的话,却会使用户产生迷惑 :如下面 Sql代码insert into t values('A'); insert into t values( ...

  3. BFGS算法(转载)

    转载链接:http://blog.csdn.net/itplus/article/details/21897443 这里,式(2.38)暂时不知如何证出来,有哪位知道麻烦给个思路.

  4. 【Shell】获取当前路径

    bathpath=$(cd dirname $0 ; pwd)

  5. GCC制作动态库导出符号表【转】

    转自:https://blog.csdn.net/whb_fei/article/details/76974543 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...

  6. 网络抓包 Fiddler

    1. Fiddler 抓包简介 Fiddler是通过改写HTTP代理,让数据从它那通过,来监控并且截取到数据.当然Fiddler很屌,在打开它的那一瞬间,它就已经设置好了浏览器的代理了.当你关闭的时候 ...

  7. sqlserver 备份 与 还原

    背景 真是够懒得,一看这个内容,如此简单.当时的想法就是网上教程一堆,全记下来有啥意思,只是记录了要点.不过写到这里,也就写个别的吧.sqlserver与Oracle比起来,我感觉有个重要差距就是存储 ...

  8. openwrt 添加luci选项

    刚刚下载的openwrt trunk版本,安装后没有luci选项,如下图 需要添加luci页面选项. 步骤如下: (1)修改配置文件 .config , 将 CONFIG_FEED_luci is n ...

  9. saltstack自动化运维系列③之saltstack的常用模块使用

    saltstack自动化运维系列③之saltstack的常用模块使用 1.命令的常用方法: 指定主机运行命令 # salt 'mini1' cmd.run 'date'mini1: Fri Apr 7 ...

  10. jumperserver3.0的安装部署

    适用于jumperserver版本:v0.3.1-2  官网:http://www.jumpserver.org/ 系统:centos7.2 基本安装 备注:如果是centos系统最好使用基本安装,否 ...