题意:

    给出x, y, m[1...n], a[1..n].
      

    在[x,y]中寻找 p % 7 = 0 且对任意(1<= i <=n) p % m[i] != a[i] 的数字的个数
    
分析:

    可用容斥定理,先在[x,y]找出所有7的倍数,再根据多个模线性方程连立,去掉所有不合法的
      

    因 m[1...n] 互质,故可直接使用中国剩余定理.

    并且需要在其中用 快速加法 防止超 long long

 #include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;
#define LL long long
const int MAXN = ;
LL ExtGcd(LL a,LL b,LL &x,LL &y)
{
if (b == ) {x = ; y = ; return a;}
LL d = ExtGcd(b, a%b, y, x);
y -= a / b * x;
return d;
}
LL Mul(LL a,LL b,LL MOD)
{
a%=MOD; b%=MOD;
LL res = ;
while(b)
{
if (b&) res = (res + a) % MOD;
a <<= ; if(a > MOD) a-=MOD;
b >>= ;
}
return res;
}
void CRT(LL &ans,LL &M, LL a[],LL m[],int k) //X = a[i] ( mod m[i] )(m[i]两两互质)
{ //解为 X = ans + M * t (0 <= ans <= M)
M = , ans = ;
LL x, y, Mi;
for (int i = ; i < k; i++) M *= m[i];
for (int i = ; i < k; i++)
{
Mi = M / m[i];
ExtGcd(m[i], Mi, x, y);
ans = (ans + Mul( Mul(y, Mi, M), a[i], M)) % M;
}
if(ans < ) ans += M;
}
int t, n;
LL x, y;
LL m1[MAXN], a1[MAXN], m[MAXN], a[MAXN];
LL Cal(LL m,LL a)
{
LL x0 = x + m - a;
LL y0 = y + m - a;
return y0 / m - (x0 - ) / m;//计算[x,y]中有多少p % m = a
}
int main()
{
scanf("%d", &t);
for(int tt = ; tt <= t; tt++)
{
scanf("%d%lld%lld", &n, &x, &y);
for(int i = ; i < n ; i++)
scanf("%lld%lld", &m1[i], &a1[i]);
int cnt = ;
LL ans = Cal(,);//找出所有7的倍数
for (int i = ; i < (<<n); i++)//枚举
{
cnt = ;
for (int j = ; j < n; j++)
{
if (i & (<<j))
{
m[cnt] = m1[j];
a[cnt] = a1[j];
++cnt;
}
}
m[cnt] = ;
a[cnt] = ;
++cnt;
LL M,A;
CRT(A, M, a, m, cnt);
if (cnt%) ans += Cal(M, A);//加奇数个,减偶数个
else ans -= Cal(M, A);
}
printf("Case #%d: %lld\n",tt,ans);
}
}

HDU 5768 - Lucky7的更多相关文章

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

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

  2. hdu 5768 Lucky7 容斥

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

  3. HDU 5768 Lucky7 (中国剩余定理+容斥)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5768 给你n个同余方程组,然后给你l,r,问你l,r中有多少数%7=0且%ai != bi. 比较明显 ...

  4. 【中国剩余定理】【容斥原理】【快速乘法】【数论】HDU 5768 Lucky7

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5768 题目大意: T组数据,求L~R中满足:1.是7的倍数,2.对n个素数有 %pi!=ai  的数 ...

  5. HDU 5768 Lucky7(CRT+容斥原理)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5768 [题目大意] 求出一个区间内7的倍数中,对于每个ai取模不等于bi的数的个数. [题解] 首 ...

  6. hdu 5768 Lucky7 中国剩余定理+容斥+快速乘

    Lucky7 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem D ...

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

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

  8. HDU 5768 Lucky7 (容斥原理 + 中国剩余定理 + 状态压缩 + 带膜乘法)

    题意:……应该不用我说了,看起来就很容斥原理,很中国剩余定理…… 方法:因为题目中的n最大是15,使用状态压缩可以将所有的组合都举出来,然后再拆开成数组,进行中国剩余定理的运算,中国剩余定理能够求出同 ...

  9. HDU 5768:Lucky7(中国剩余定理 + 容斥原理)

    http://acm.hdu.edu.cn/showproblem.php?pid=5768 Lucky7 Problem Description   When ?? was born, seven ...

随机推荐

  1. Intellij Idea 配置database 连接SQL Server 2012

    首先确认通过TCP IP来连接连接SQLServer 2012     确保 Server Authentication选择了SQL Server and Windows Authentication ...

  2. 关于arm-linux-gcc的安装与配置

    在嵌入式开发中我们经常会用到arm-linux-gcc来编译我们的应用程序.作为arm-linux-gcc的入门,我们先看看如何安装arm-linux-gcc. 安装arm-linux-gcc还是比较 ...

  3. Webfrom基础知识

    MyBeNASP.NET内置对象 (1)简述ASP.NET内置对象. 答:ASP.NET提供了内置对象有Page.Request.Response.Application.Session.Server ...

  4. chisel中pviews命令无法使用

    chisel是用Python写的LLDB调试器插件,用来调试iOS应用非常方便,相关下载安装链接如下:https://github.com/facebook/chisel.本人安装之后,在xcode里 ...

  5. WAMP下定义wordpress固定连接出现文章页面404

    在修改为如下设置后,一切更新正常,但回到博客主页访问单独文章时出现了404问题 最后一项改为index.php/%postname%后可正常访问,但是去掉那个php文件则不行. 找到的解决方法为:开启 ...

  6. 解决ScrollView中嵌套ListView滚动效果冲突问题

    在ScrollView中嵌套使用ListView,ListView只会显示一行到两行的数据.起初我以为是样式的问题,一直在对XML文件的样 式进行尝试性设置,但始终得不到想要的效果.后来在网上查了查, ...

  7. python一句代码建立树

    from collections import defaultdict def tree(): return defaultdict(tree) 上面的代码不难理解,就是利用递归的方式,创建了一个树的 ...

  8. 我和Python的第一次亲密接触 - 零基础入门学习Python001

    我和Python的第一次亲密接触 让编程改变世界 Change the world by program 小甲鱼经常说,学习一门编程语言就是要深入其中,要把编程语言想象为你的女朋友你的情人,这样你学习 ...

  9. 宽带连接工具[bat]

    功能概述: 本工具使用批处理编写,提供自动判断网络状态以决定断开或是连上网络,本月已用宽带时长,到月初自动清零.提供联网日志功能,可以记录下所有的连接或断开网络记录.如果连接失败,自动提示输入密码,特 ...

  10. Resharper使用

    Resharper进阶一:简要介绍 官方下载地址下载地址  注册码: 用户名: User 注册码:D9d09DSYJel9IyuDU4btAQwZcbLugUad 面对这样一个问题:为什么.net能够 ...