HDU5768Lucky7
Lucky7
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 933 Accepted Submission(s): 345
?? once wrote an autobiography, which mentioned something about himself. In his book, it said seven is his favorite number and he thinks that a number can be divisible by seven can bring him good luck. On the other hand, ?? abhors some other prime numbers and thinks a number x divided by pi which is one of these prime numbers with a given remainder ai will bring him bad luck. In this case, many of his lucky numbers are sullied because they can be divisible by 7 and also has a remainder of ai when it is divided by the prime number pi.
Now give you a pair of x and y, and N pairs of ai and pi, please find out how many numbers between x and y can bring ?? good luck.
Each test case starts with three integers three intergers n, x, y(0<=n<=15,0<x<y<1018) on a line where n is the number of pirmes.
Following on n lines each contains two integers pi, ai where pi is the pirme and ?? abhors the numbers have a remainder of ai when they are divided by pi.
It is guranteed that all the pi are distinct and pi!=7.
It is also guaranteed that p1*p2*…*pn<=1018 and 0<ai<pi<=105for every i∈(1…n).
Case #2: 14
For Case 1: 7,21,42,49,70,84,91 are the seven numbers.
For Case2: 7,14,21,28,35,42,49,56,63,70,77,84,91,98 are the fourteen numbers.
好题啊 学到了很多东西...
首先 俄罗斯乘法用于大数取模。中国剩余定理解同模方程组。记住这个解不是唯一的...
容斥原理解决 统计问题
/* ***********************************************
Author :guanjun
Created Time :2016/7/30 13:10:44
File Name :hdu5768.cpp
************************************************ */
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <stdio.h>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <iomanip>
#include <list>
#include <deque>
#include <stack>
#define ull unsigned long long
#define ll long long
#define mod 90001
#define INF 0x3f3f3f3f
#define maxn 10010
#define cle(a) memset(a,0,sizeof(a))
const ull inf = 1LL << ;
const double eps=1e-;
using namespace std; ll a[],m[];
void ex_gcd(ll a,ll b,ll &d,ll &x,ll &y){
if(!b){d=a;x=1LL;y=0LL;}
else {ex_gcd(b,a%b,d,y,x);y-=x*(a/b);}
}
ll mult(ll a,ll k,ll m){
ll res=;
while(k){
if(k&1LL)res=(res+a)%m;
k>>=;
a=(a<<)%m;
}
return res;
}
ll china(int n,ll *a,ll *m){
ll M=,d,y,x=;
for(int i=;i<n;i++)M*=m[i];
for(int i=;i<n;i++){
ll w=M/m[i];
ex_gcd(m[i],w,d,d,y);
x=(x+mult(y,mult(w,a[i],M),M))%M;
}
return (x+M)%M;
}
ll p[],yu[];
int n;
ll get_ans(ll x){
if(x==)return ;
ll ans=;
int st=(<<n);
for(int i=;i<st;i++){
int cnt=;
ll cur=;
m[cnt]=;a[cnt]=;
cur*=;cnt++;
for(int j=;j<n;j++){
if(i&(<<j)){
m[cnt]=p[j];
a[cnt]=yu[j];
cnt++;
cur*=p[j];
}
}
ll tmp=china(cnt,a,m);
if(tmp>x)continue;
if(cnt&)ans+=(x-tmp)/cur+;
else ans-=(x-tmp)/cur+;
}
//cout<<ans<<endl;
return ans+x/;
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt","r",stdin);
#endif
//freopen("out.txt","w",stdout);
int T,t;
ll l,r;
cin>>T;
for(int t=;t<=T;t++){
scanf("%d %I64d %I64d",&n,&l,&r);
for(int i=;i<n;i++)
scanf("%I64d %I64d",&p[i],&yu[i]);
printf("Case #%d: %I64d\n",t,get_ans(r)-get_ans(l-));
}
return ;
}
HDU5768Lucky7的更多相关文章
- HDU5768Lucky7(中国剩余定理+容斥定理)(区间个数统计)
When ?? was born, seven crows flew in and stopped beside him. In its childhood, ?? had been unfortun ...
随机推荐
- webpack4前端工程化教程(一)
-本文作为webpack小白入门文章,会详细地介绍webpack的用途.具体的安装步骤.注意事项.一些基本的配置项,并且会以一个具体的项目实例来介绍如何使用webpack.另外,本文会简单地介绍一些最 ...
- 关于C/C++的一些思考(4)
C++的类型转换规则: 对于数值类型而言:当一个较小数值类型赋值给一个较大数值类型的时候,C++支持隐式的类型转换,不会有任何的损失: 对于数值类型而言,当一个较大数值类型赋值给一个较小数值类型时候, ...
- django找不到报错 ‘zsh: command not found: django-admin.py’
>>python -m django --version >> 1.11.4 说明django安装成功,但是django-admin 报错 ‘zsh: command not ...
- stark组件之处理函数动态url构造(五)
在这个组件中有内置的4个处理函数,它们都有自己对应的url,那么它们的url是怎么构造的呢? ... urlpatterns = [ re_path('list/$', self.wrapper(se ...
- 杭电 2124 Repair the Wall(贪心)
Description Long time ago , Kitty lived in a small village. The air was fresh and the scenery was ve ...
- 完美解决了span的宽度设置
下 面代码的CSS定义完美解决了span的宽度设置问题.由于浏览器通常对不支持的CSS属性采取忽略处理的态度,所以最好将display:inline -block行写在后面,这样在Firefox里面, ...
- 1004. 成绩排名 (20) (快速排序qsort函数的使用问题)
读入n名学生的姓名.学号.成绩,分别输出成绩最高和成绩最低学生的姓名和学号. 输入格式:每个测试输入包含1个测试用例,格式为 第1行:正整数n 第2行:第1个学生的姓名 学号 成绩 第3行:第2个学生 ...
- spark streaming 踩过的那些坑
系统背景 spark streaming + Kafka高级API receiver 目前资源分配(现在系统比较稳定的资源分配),独立集群 --driver-memory 50G --exec ...
- [NOIP2006] 普及组
明明的随机数 STL真是偷懒神器 /*by SilverN*/ #include<algorithm> #include<iostream> #include<cstri ...
- Tyvj 1176 火焰巨魔的惆怅
Tyvj 1176 火焰巨魔的惆怅 背景 TYVJ2月月赛第一道 巨魔家族在某天受到了其他种族的屠杀,作为一个英雄,他主动担任了断后的任务,但是,在巨魔家族整体转移过后,火焰巨魔却被困住了,他出逃的方 ...