题目链接:hdu_5768_Lucky7

题意:

给你一个区间,问你这个区间内是7的倍数,并且满足%a[i]不等于w[i]的数的个数

乍一看以为是数位DP,仔细看看条件,发现要用中国剩余定理,然后容斥一下就出答案了,不过这里在中国剩余定理里面的乘法会有数据爆long long ,所有要写一个高精度乘法,这里卡死很多人、

 #include <bits/stdc++.h>
#define F(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
typedef long long ll; ll a[],w[],l,r;
int t,n,vis[],ic=; ll mut(ll a,ll b,ll mod)//高精度求乘法
{
ll an=;
while(b){if(b&)an=(an+a)%mod;b>>=,a=(a<<)%mod;}
return an;
} ll Extended_Euclid(ll a, ll b, ll &x, ll &y)//扩展欧几里得算法
{
if(b==){x=,y=;return a;}
ll d=Extended_Euclid(b,a%b,y,x);
y-=a/b*x;
return d;
} inline ll cal(ll r,ll l,ll m){return (r-l)/m;} ll Chinese_Remainder(int len=n+)//中国剩余定理,a[]存放余数,w[]存放两两互质的数
{
ll x,y,m,N=,ret=;
F(i,,len)if(vis[i])N*=w[i];//从1开始
F(i,,len)if(vis[i])m=N/w[i],Extended_Euclid(w[i],m,x,y),
ret=(ret+mut(mut(y,m,N),a[i],N))%N;//注意是否爆ll
ret=(N+ret%N)%N;
return cal(r+N,ret,N)-cal(l-+N,ret,N);
} int main()
{
scanf("%d",&t);
w[]=,a[]=,vis[]=;
while(t--)
{
scanf("%d%lld%lld",&n,&l,&r);
F(i,,n+)scanf("%d%d",w+i,a+i);
F(i,,n+)vis[i]=;
ll ans=;
int end=<<n;
for(int i=;i<end;i++)
{
int tp=i,cnt=;
F(j,,n+)vis[j]=tp&,tp>>=,cnt+=vis[j];
cnt=cnt&?-:;
ans+=1ll*cnt*Chinese_Remainder();
}
printf("Case #%d: %lld\n",ic++,ans);
}
return ;
}

hdu_5768_Lucky7(中国剩余定理+容斥)的更多相关文章

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

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

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

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

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

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

  4. HDU5768Lucky7(中国剩余定理+容斥定理)(区间个数统计)

    When ?? was born, seven crows flew in and stopped beside him. In its childhood, ?? had been unfortun ...

  5. [BZOJ 3129] [Sdoi2013] 方程 【容斥+组合数取模+中国剩余定理】

    题目链接:BZOJ - 3129 题目分析 使用隔板法的思想,如果没有任何限制条件,那么方案数就是 C(m - 1, n - 1). 如果有一个限制条件是 xi >= Ai ,那么我们就可以将 ...

  6. bzoj 3782 上学路线 卢卡斯定理 容斥 中国剩余定理 dp

    LINK:上学路线 从(0,0)走到(n,m)每次只能向上或者向右走 有K个点不能走求方案数,对P取模. \(1\leq N,M\leq 10^10 0\leq T\leq 200\) p=10000 ...

  7. HDU 5768Lucky7(多校第四场)容斥+中国剩余定理(扩展欧几里德求逆元的)+快速乘法

    地址:http://acm.hdu.edu.cn/showproblem.php?pid=5768 Lucky7 Time Limit: 2000/1000 MS (Java/Others)    M ...

  8. ACM/ICPC 之 中国剩余定理+容斥原理(HDU5768)

    二进制枚举+容斥原理+中国剩余定理 #include<iostream> #include<cstring> #include<cstdio> #include&l ...

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

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

随机推荐

  1. 两个队列实现一个栈,剑指offer P59

    public class StackByQueue { private LinkedList<String> queue1; private LinkedList<String> ...

  2. centos 7 连接 xshell5

    首先 保证你的centos版本与你选择的linux版本相同. 1.首先查看本机IP和网关 2.在centos7命令行下输入nmtui 进入   Edit a commection 选择Edit 按照刚 ...

  3. LoadRunner参数值定义-摘自一米阳光

    深入解析LoadRunner下的参数化取值   熟悉LoadRunner的人,相信都会经常使用参数化功能,但是对于参数化的使用到底了解多少,就值得深思了.包括本人在内也是,每次在做压力测试的时候,基本 ...

  4. Rx学习

    RXjava学习资料: https://www.gitbook.com/book/yuxingxin/rxjava-essentials-cn/details 如下只是学习笔记而已,后面添加实战案例, ...

  5. ACdream 1020 The Game about KILL

    找规律. 11 3 1 3 5 7 1 3 5 7 9 11 13 15 ....... #pragma comment(linker, "/STACK:1024000000,1024000 ...

  6. 第七十五节,CSS表格与列表

    CSS表格与列表 学习要点: 1.表格样式 2.列表样式 3.其他功能 一.表格样式 表格有五种独有样式,样式表如下:             属性               值           ...

  7. qt 汉化 国际化

    两种方法. 1. 使用 QTextCodec  setcodeforname 设置编码, 然后在程序中对于需要处理的字符使用 fromLocal8Bit . 2. 使用 Linguist. 首先把文件 ...

  8. JavaScript面向对象基础语法总结

    1.Javascript的 对象(Object): //例子:var car = { , , }; 2.使用构造函数来创建对象. //例子: var Car = function() { ; ; ; ...

  9. 彻底卸载 postgreSQL .etc

    sudo apt-get  --purge autoremove postgresql*

  10. Kettle jdbc连接hive出现问题

    jdbc连接时报如下错误: Error connecting to database [k] : org.pentaho.di.core.exception.KettleDatabaseExcepti ...