hdu_5768_Lucky7(中国剩余定理+容斥)
题目链接: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(中国剩余定理+容斥)的更多相关文章
- HDU 5768 Lucky7 (中国剩余定理+容斥)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5768 给你n个同余方程组,然后给你l,r,问你l,r中有多少数%7=0且%ai != bi. 比较明显 ...
- hdu 5768 Lucky7 中国剩余定理+容斥+快速乘
Lucky7 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem D ...
- HDU 5768 Lucky7 (中国剩余定理 + 容斥 + 快速乘法)
Lucky7 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5768 Description When ?? was born, seven crow ...
- HDU5768Lucky7(中国剩余定理+容斥定理)(区间个数统计)
When ?? was born, seven crows flew in and stopped beside him. In its childhood, ?? had been unfortun ...
- [BZOJ 3129] [Sdoi2013] 方程 【容斥+组合数取模+中国剩余定理】
题目链接:BZOJ - 3129 题目分析 使用隔板法的思想,如果没有任何限制条件,那么方案数就是 C(m - 1, n - 1). 如果有一个限制条件是 xi >= Ai ,那么我们就可以将 ...
- bzoj 3782 上学路线 卢卡斯定理 容斥 中国剩余定理 dp
LINK:上学路线 从(0,0)走到(n,m)每次只能向上或者向右走 有K个点不能走求方案数,对P取模. \(1\leq N,M\leq 10^10 0\leq T\leq 200\) p=10000 ...
- HDU 5768Lucky7(多校第四场)容斥+中国剩余定理(扩展欧几里德求逆元的)+快速乘法
地址:http://acm.hdu.edu.cn/showproblem.php?pid=5768 Lucky7 Time Limit: 2000/1000 MS (Java/Others) M ...
- ACM/ICPC 之 中国剩余定理+容斥原理(HDU5768)
二进制枚举+容斥原理+中国剩余定理 #include<iostream> #include<cstring> #include<cstdio> #include&l ...
- HDU 5768 Lucky7 容斥原理+中国剩余定理(互质)
分析: 因为满足任意一组pi和ai,即可使一个“幸运数”被“污染”,我们可以想到通过容斥来处理这个问题.当我们选定了一系列pi和ai后,题意转化为求[x,y]中被7整除余0,且被这一系列pi除余ai的 ...
随机推荐
- php 编程效率(2)
1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍. 当然了,这个测试方法需要在十万级以上次执行,效果才明显. 其实静态方法和非静态方法的 ...
- Memcached内存存储
早就听说过Memcached独特的内存管理方式,写着篇文章的目的就是了解Memcached的内存管理,学习其源代码. 1.什么是Slab Allocator memcached默认情况下采用了名为Sl ...
- javascript windows对象
1.windows对象方法 2.计时器方法 3.计时器setInterval() <!DOCTYPE HTML> <html> <head> <meta ht ...
- HBase表删除问题
HBase shell下用list命令查看表,出现错误:找不到表 格式化zookeeper,删除.opt/zookeeper下除了myid的文件 重启集群 再进入HBase shell,list可以查 ...
- 新手购买海外VPS主机需要注意的几个账户安全问题
一般我们用户的项目需要,可能会较多的购买海外的VPS主机项目居多,其实我也比较喜欢国内的阿里云等产品,但是后者需要的一些政策还是比较麻烦, 所以在操作一些调试项目的时候我比较倾向于选择较为便宜的海外V ...
- Rx学习
RXjava学习资料: https://www.gitbook.com/book/yuxingxin/rxjava-essentials-cn/details 如下只是学习笔记而已,后面添加实战案例, ...
- 【转】cookie和session的区别
原作者:施杨(施杨's Think out)出处:http://shiyangxt.cnblogs.com ************** 本文版权归原作者和博客园共有,欢迎转载,转载请保留该申明 ** ...
- linshi_temp_erweima_html
<!doctype html><html><head><meta charset="utf-8"><meta content= ...
- WEB前端组件思想【日历】
DEMO2: 思路:首先获取元素节点元素--->根据点击事件隐藏显示元素--->建立showdate方法(判断12月 则右边年份+1,月份1 )--->还要设置btn开关 防止多次重 ...
- openwrt的uboot环境变量分析
目前烧写完CC(chaos calmer 15.05)版本,查看其uboot变量如下: ath> printenvbootargs=console=ttyS0,115200 root=31:02 ...