vijosP1629 八

链接:https://vijos.org/p/1629

【思路】

暴力容斥(看他们都这么叫=_=)+精度选择。

总体思路是先统计LR区间内满足是8倍数的数目ans,再从ans中减去区间里8和一个a 的lcm的倍数的数目,再加上8和2个a的lcm的倍数,再减去……

因为n最大为15因此只要枚举二进制数即可表示a的所有组合。

计算LR区间内x倍数:R/x-(L-1)/x

精度用long long。

【代码】

 1 #include<iostream>
 2 using namespace std;
 3
 4 typedef long long LL;
 5 LL n,L,R,A[20];
 6
 7 inline LL gcd(LL a,LL b) {
 8     if(!b) return a;
 9     return gcd(b,a%b);
10 }
11 inline LL lcm(LL a,LL b) {
12     return a*b/gcd(a,b);
13 }
14
15 int main() {
16     cin>>n;
17     for(int i=0;i<n;i++) cin>>A[i];
18     cin>>L>>R;
19     LL ans=R/8-(L-1)/8;
20     for(int s=1;s<=(1<<n)-1;s++)
21     {
22        LL _lcm=8,cnt=0;
23        for(int i=0;i<n;i++) if(s&(1<<i)) _lcm=lcm(_lcm,A[i]) , cnt++;
24        if(cnt&1) ans -= R/_lcm-(L-1)/_lcm;
25        else ans += R/_lcm-(L-1)/_lcm;;
26     }
27     cout<<ans;
28     return 0;
29 }
时间: 2024-07-29 04:44:35

vijosP1629 八的相关文章

谭八爷代理订货平台系统

谭八爷代理订货平台系统  135.3879.3268   谭八爷微商下单系统.谭八爷微商管理系统.谭八爷代理商下单系统等.模式系统开发 传统行业和内容提供本质没有变,但是在结合互联网后的商业模式和运营模式变了,如当前我们谈的多的O2O,核心不是内容提供变化了,是商业模式变化了,这个商业模式变化本身又依托了一个重要假设,即解决了传统行业原有的信息不对称问题. 谭八爷微商平台系统开发的注册流程是非常简单的--扫码注册.同时后台的功能也很强大,代理们收到顾客订单后可以直接在后台向公司下单,同时后台也会

PHP连接MySQL的八个步骤【实操】

我们为大家将数据库连接整理成了最重要的8个步骤,我戏称它为:"数据库连接天龙八步". 这八个步骤如下,并且将每一步使用的函数都做了说明: 第一步:  连接数据库服务器 类型 说明 函数 mysqli_connect 功能 连接到mysql数据库服务器 参数1 主机 参数2 数据库服务器登陆名 参数3 密码 参数4 数据库的名称 参数5 数据库服务器端口不填默认3306 若参数4,数据库名称在此步已填并择,不需要执行第三步. 第二步:  判断错误 类型 说明 函数 mysqli_errn

八幅漫画理解使用 JSON Web Token 设计单点登录系统

原文出处: John Wu 上次在<JSON Web Token – 在Web应用间安全地传递信息>中我提到了JSON Web Token可以用来设计单点登录系统.我尝试用八幅漫画先让大家理解如何设计正常的用户认证系统,然后再延伸到单点登录系统. 如果还没有阅读<JSON Web Token – 在Web应用间安全地传递信息>,我强烈建议你花十分钟阅读它,理解JWT的生成过程和原理. 用户认证八步走 所谓用户认证(Authentication),就是让用户登录,并且在接下来的一段时

Netty对Protocol Buffer多协议的支持(八)

Netty对Protocol Buffer多协议的支持(八) 一.背景 在上篇博文中笔者已经用代码演示了如何在netty中使用Protocol Buffer,然而细心的用户可能会发现一个明显的不足之处就是,我们的Handler只能处理一种特定的类型,而我们的项目中又不可能只有一种类型,那么这个问题该怎么解决了?多的不说,笔者直接上代码. 二.代码实现 2.1 message的编写 syntax = "proto2"; package com.rsy.netty.protobuf; op

BFS+康托展开(洛谷1379 八数码难题)

在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示.空格周围的棋子可以移到空格中.要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765),找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变. 输入格式: 输入初试状态,一行九个数字,空格用0表示 输出格式: 只有一行,该行只有一个数字,表示从初始状态到目标状态需要的最少移动次数(测试数据中无特殊无法到达目标状态数据) 输入样例#1: 2831

团队作业八——第二次团队冲刺(Beta版本)第6天

团队作业八--第二次团队冲刺(Beta版本)第5天 一.每个人的工作 (1) 昨天已完成的工作 简单模式逻辑代码涉及与相关功能的具体实现 (2) 今天计划完成的工作 修改完善注册登录内容界面,编辑错题文件写入. (3) 工作中遇到的困难 今天花了较多时间在完善登录注册界面上,这让我们比较担心,如果每天都花很多时间在解决之前的问题,当天的任务又做不好,会不会赶不上进度.如果每天都不能正常完美的完成每天任务,那冲刺最后一天结束的时候,又哪里再有一个明天给我们完善代码.且今天还遇到了写入SD存储卡文件

1225 八数码难题

1225 八数码难题 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description Yours和zero在研究A*启发式算法.拿到一道经典的A*问题,但是他们不会做,请你帮他们.问题描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示.空格周围的棋子可以移到空格中.要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765

20135302魏静静——linux课程第八周实验及总结

linux课程第八周实验及总结 实验及学习总结 1. 进程切换在内核中的实现 linux中进程切换是很常见的一个操作,而这个操作是在内核中实现的. 实现的时机有以下三个时机: 中断处理过程(包括时钟中断.I/O中断.系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule(): 内核线程可以直接调用schedule()进行进程切换,也可以在中断处理过程中进行调度,也就是说内核线程作为一类的特殊的进程可以主动调度,也可以被动调度: 用户

洪泰基金投资经理殷鹏:肯定不投的八类项目

对于创业者来说,寻找合适的投资机构拿到相应的融资是创业中必须要经历的一个过程:然而,对于机构投资人来说,每周需要投入超过100个小时来研究并寻找优秀的创业团队. 成立仅半年的洪泰基金截止目前,投资了50余个项目,其中,互联网+概念的部分几乎100%.在新创课的课堂上,洪泰基金资深投资经理殷鹏分享了他们对天使投资的理解.看法及这家年轻基金的投资准则. 核心观点:同一个赛道里能容下的项目不会超过3家,未来的天使投资人逐渐会被机构所代替,合投将成为趋势: 洪泰的投资原则: 1.不投没有商业计划书的项目