题目链接:Lucky7

题意:求在l和r范围内,满足能被7整除,而且不满足任意一组,x mod p[i] = a[i]的数的个数。

思路:容斥定理+中国剩余定理+快速乘法。 (奇+ 偶-)

#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std; #define LL long long
#define FOR(i, n) for (int i=0; i<n; ++i)
LL l, r; int extend_gcd(LL a, LL b, LL &x, LL &y) {
if (b == 0) {
x = 1;
y = 0;
return a;
} else {
int r = extend_gcd(b, a%b, y, x);
y -= x*(a/b);
return r;
}
} LL qMul(LL a, LL b, LL mod) {
a %= mod;
LL ret = 0;
while(b) {
if (b & 1) ret = (ret + a) % mod;
b >>= 1;
a = (a + a) % mod;
}
return ret;
} LL CRT(LL *a, LL *m, int n) {
LL M = 1;
for (int i=0; i<n; ++i) M *= m[i]; LL x = 0;
LL d, y;
for (int i=0; i<n; ++i) {
//LL d, y;
LL tm = M/m[i];
extend_gcd(m[i], tm, d, y);
x = (x + qMul( qMul(d, tm, M), a[i], M)) % M; // 参数传递有顺序
}
x = (x + M) % M;
return (r+M-x)/M - (l-1+M-x)/M; // 直接返回l r区间有多少个解。
} LL a[20], m[20];
LL chu[20], rema[20]; int main() {
freopen("1.in.cpp", "r", stdin);
int t;
scanf("%d", &t);
int cas = 0; while(t--) {
int n;
scanf("%d%lld%lld", &n, &l, &r);
FOR(i, n) {
scanf("%lld%lld", &chu[i], &rema[i]);
}
LL tot = (1<<n);
LL ans = r/7 - (l-1)/7; for (int i=1; i<tot; ++i) {
//cout << i << "++++\n";
int cnt = 0;
FOR (j, n) {
if (i&(1<<j)) {
m[cnt] = chu[j];
a[cnt] = rema[j];
cnt++;
}
}
m[cnt] = 7, a[cnt] = 0;
cnt++;
LL tans = CRT(a, m, cnt);
cnt = (cnt&1) ? 1 : -1;
ans += tans * cnt;
}
//cout << "++++\n";
printf("Case #%d: %I64d\n", ++cas, ans);
}
return 0;
}

HDU 5768 中国剩余定理的更多相关文章

  1. hdu 2891 中国剩余定理

    从6点看到10点,硬是没算出来,早知道玩游戏去了,艹,明天继续看 不爽,起来再看,终于算是弄懂了,以后超过一个小时的题不会再看了,不是题目看不懂,是水平不够 #include<cstdio> ...

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

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

  3. 《孙子算经》之"物不知数"题:中国剩余定理

    1.<孙子算经>之"物不知数"题 今有物不知其数,三三数之剩二,五五数之剩七,七七数之剩二,问物几何? 2.中国剩余定理 定义: 设 a,b,m 都是整数.  如果 m ...

  4. POJ 1006 中国剩余定理

    #include <cstdio> int main() { // freopen("in.txt","r",stdin); ; while(sca ...

  5. [TCO 2012 Round 3A Level3] CowsMooing (数论,中国剩余定理,同余方程)

    题目:http://community.topcoder.com/stat?c=problem_statement&pm=12083 这道题还是挺耐想的(至少对我来说是这样).开始时我只会60 ...

  6. poj1006中国剩余定理

    Biorhythms Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 103506   Accepted: 31995 Des ...

  7. (伪)再扩展中国剩余定理(洛谷P4774 [NOI2018]屠龙勇士)(中国剩余定理,扩展欧几里德,multiset)

    前言 我们熟知的中国剩余定理,在使用条件上其实是很苛刻的,要求模线性方程组\(x\equiv c(\mod m)\)的模数两两互质. 于是就有了扩展中国剩余定理,其实现方法大概是通过扩展欧几里德把两个 ...

  8. 洛谷P2480 [SDOI2010]古代猪文(费马小定理,卢卡斯定理,中国剩余定理,线性筛)

    洛谷题目传送门 蒟蒻惊叹于一道小小的数论题竟能涉及这么多知识点!不过,掌握了这些知识点,拿下这道题也并非难事. 题意一行就能写下来: 给定\(N,G\),求\(G^{\sum \limits _{d| ...

  9. 洛谷P3868 [TJOI2009]猜数字(中国剩余定理,扩展欧几里德)

    洛谷题目传送门 90分WA第二个点的看过来! 简要介绍一下中国剩余定理 中国剩余定理,就是用来求解这样的问题: 假定以下出现数都是自然数,对于一个线性同余方程组(其中\(\forall i,j\in[ ...

随机推荐

  1. LightOJ::1077 -----奇妙的最大公约数

    题目:http://www.lightoj.com/volume_showproblem.php?problem=1077 题意:在平面上, 给出两个点的坐标 例如:(x, y) 其中x, y 都是整 ...

  2. [转载] HTTP请求的TCP瓶颈分析

    原文: http://bhsc881114.github.io/2015/06/23/HTTP%E8%AF%B7%E6%B1%82%E7%9A%84TCP%E7%93%B6%E9%A2%88%E5%8 ...

  3. Mysql ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA

    ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declar ...

  4. oracle 索引失效原因及解决方法

    oracle 索引失效原因及解决方法 2010年11月26日 星期五 17:10 一.以下的方法会引起索引失效 ‍1,<>2,单独的>,<,(有时会用到,有时不会)3,like ...

  5. hdu 4864 Task

    题目链接:hdu 4864 其实就是个贪心,只是当初我想的有偏差,贪心的思路不对,应该是这样子的: 因为 xi 的权值更重,所以优先按照 x 来排序,而这样的排序方式决定了在满足任务(即 xi > ...

  6. golang 资源

    1.Learning Go <学习Go语言> http://www.miek.nl/projects/learninggo/中文版http://mikespook.com/learning ...

  7. spring @ExceptionHandler注解方式实现异常统一处理

    首先,在我们的工程中新建BaseController父类,内容如下: package com.ztesoft.zsmartcity.framework.exception; import java.i ...

  8. 利用SecureCRT上传、下载文件(使用sz与rz命令),超实用!

    利用SecureCRT上传.下载文件(使用sz与rz命令),超实用! 文章来源:http://blog.csdn.net/dongqinliuzi/article/details/39623169 借 ...

  9. icp算法基本思想

    Icp基本思想参考资料:http://www.cnblogs.com/jian-li/articles/4945676.html ,包括点-点,点-面的各种icp变种 Icp算法就是两个点云X.Y之间 ...

  10. HTTP 头部解释

    1. Accept:告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type. 2. Accept-Charset:浏览器申明自己 ...