1. ★☆ 输入文件:eight.in 输出文件:eight.out 简单对比

    时间限制:1 s 内存限制:128 MB

    【问题描述】

    八是个很有趣的数字啊。八=发,八八=爸爸,88=拜拜。当然最有趣的还是8用二进制表示是1000。怎么样,有趣吧。当然题目和这些都没有关系。

    某个人很无聊,他想找出[a,b]中能被8整除却不能被其他一些数整除的数。

    【输入文件】

    第一行一个数n,代表不能被整除的数的个数。第二行n个数,中间用空格隔开。第三行两个数a,b,中间一个空格。

    【输出文件】

    一个整数,为[a,b]间能被8整除却不能被那n个数整除的数的个数。

    【样例输入】

    eight.in

    3

    7764 6082 462

    2166 53442

    【样例输出】

    eight.out

    6378

    【数据规模】

    对于30%的数据, 1≤n≤5,1≤a≤b≤100000。

    对于100%的数据,1≤n≤15,1≤a≤b≤10^9,N个数全都小于等于10^4大于等于1。
/*
一道容斥一眼题.
全集就是[l,r]中8的倍数的个数了.
考虑不合法的部分就是8的其他数的LCM了
n这么小 二进制拆分一下枚举子集就好了.
*/
#include<iostream>
#include<cstdio>
#define MAXN 20
#define LL long long
using namespace std;
LL n,a[MAXN],l,r,ans,tot,Lcm;
LL gcd(LL a,LL b)
{
if(!b) return a;
return gcd(b,a%b);
}
LL lcm(LL a,LL b)
{
return a*b/gcd(a,b);
}
void slove()
{
ans=r/8-(l-1)/8;
for(int s=1;s<=(1<<n)-1;s++)
{
tot=0;Lcm=8;
for(int i=0;i<n;i++)
if(s&(1<<i)) tot++,Lcm=lcm(Lcm,a[i]);
if(tot&1) ans-=r/Lcm-(l-1)/Lcm;
else ans+=r/Lcm-(l-1)/Lcm;
}
}
int main()
{
freopen("eight.in","r",stdin);
freopen("eight.out","w",stdout);
scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d",&a[i]);
scanf("%d %d",&l,&r);
slove();
printf("%d",ans);
return 0;
}

Cogs 513. 八(容斥原理)的更多相关文章

  1. COGS 513 八

    513. 八 http://www.cogs.pro/cogs/problem/problem.php?pid=513 ★☆   输入文件:eight.in   输出文件:eight.out   简单 ...

  2. vijos P1629八 容斥原理

    https://vijos.org/p/1629 注意lcm要用LL 先给一个样例 1 2 1 10 思路.其实这题就是问,给定一堆数,要求不能整除其任意一个的数字有多少个. 容辞 + lcm dfs ...

  3. 【vijos】1629 八(容斥原理+dfs)

    https://vijos.org/p/1629 本来是想出来了的,,,,但是有个地方写挫了一直没发现,sad 就是dfs的时候我传的pos传错了QAQ 这题用容斥很好想 首先在区间[l, r]能被a ...

  4. Cogs 1714. [POJ1741][男人八题]树上的点对(点分治)

    [POJ1741][男人八题]树上的点对 ★★★ 输入文件:poj1741_tree.in 输出文件:poj1741_tree.out 简单对比 时间限制:1 s 内存限制:256 MB [题目描述] ...

  5. HDU5838 Mountain(状压DP + 容斥原理)

    题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5838 Description Zhu found a map which is a N∗M ...

  6. 【bzoj2669】[cqoi2012]局部极小值 容斥原理+状压dp

    题目描述 有一个n行m列的整数矩阵,其中1到nm之间的每个整数恰好出现一次.如果一个格子比所有相邻格子(相邻是指有公共边或公共顶点)都小,我们说这个格子是局部极小值. 给出所有局部极小值的位置,你的任 ...

  7. COGS 2111. [NOIP2015普及]扫雷游戏

    ★   输入文件:2015mine.in   输出文件:2015mine.out   简单对比时间限制:1 s   内存限制:256 MB [题目描述] 扫雷游戏是一款十分经典的单机小游戏.在 n 行 ...

  8. P1629八

    P1629八 Accepted 标签:[显示标签]     描述 八是个很有趣的数字啊.八=发,八八=爸爸,88=拜拜.当然最有趣的还是8用二进制表示是1000.怎么样,有趣吧.当然题目和这些都没有关 ...

  9. 如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成

    阅读目录 前言 建模 实现 结语 一.前言 前面几篇已经实现了一个基本的购买+售价计算的过程,这次再让售价丰满一些,增加一个会员价的概念.会员价在现在的主流电商中,是一个不大常见的模式,其带来的问题是 ...

随机推荐

  1. Jwt身份验证

    转载自博友(TerryTon)  1.因为json是通用的,所以jwt可以在绝大部分平台可以通用,如java,python,php,.net等  2.基于jwt是无状态的,jwt可以用于分布式等现在比 ...

  2. Android studio 混淆配置

    混淆 studio 使用Proguard进行混淆,其是一个压缩.优化和混淆java字节码文件的一个工具. 功能:Shrinking(压缩).Optimization(优化).Obfuscattion( ...

  3. StarGAN学习笔记

    11 December 2019 20:32 来自 <https://zhuanlan.zhihu.com/p/44563641>     StarGAN StarGAN是CVPR2018 ...

  4. SAP CDS redirect view支持写操作吗,一个实验来验证

    According to this wiki, write back on CDS view is not supported: And also it is defined in ABAP help ...

  5. Spark(火花)快速、通用的大数据处理引擎框架

    一.什么是Spark(火花)? 是一种快速.通用处理大数据分析的框架引擎. 二.Spark的四大特性 1.快速:Spark内存上采用DAG(有向无环图)执行引擎非循环数据流和内存计算支持. 内存上比M ...

  6. Ubuntu中wine程序安装windows软件中文乱码如何解决

    1.安装wine sudo apt install wine 2.安装中文程序方法 下载exe文件 在命令行执行 wine 文件名.exe 3.中文乱码原因分析 查看/home/用户名/.wine/d ...

  7. 【Spring Cloud】Spring Cloud之Zipkin server搭建以及RabbitMQ收集,分布式服务跟踪(3)

    一.搭建步骤 1)新建Spring Boot项目,引入pom坐标 <parent> <groupId>org.springframework.boot</groupId& ...

  8. free - 显示系统内存信息

    free - Display amount of free and used memory in the system 显示系统中空闲和已使用内存的数量 格式: free [options] opti ...

  9. 2.创建NHibernateHelper帮助类,生成sessionFactory

    接上一篇文章 使用FluentNHibemate 操作数据库,添加映射到数据库 http://www.cnblogs.com/fzxiaoyi/p/8443586.html 在Model文件下再创建个 ...

  10. 转换复杂的JSON对象为 Map对象

    最近项目需要跟客户对接一个webservice接口,客户那传json串过来,属于比较复杂的json串,这里跟大家分享下我项目中所用的解析方法: 该方法需要以下jar package com.test; ...