题意:不说了。

更加偏向于数学不好的小可爱来理解的。

这篇博客更加偏重于容斥的讲解。用最直观的数学方法介绍这个题。

思路:

在a<=x<=b. c<=y<=d 中满足  x*y%2018=0.  其实,2018的质因子为 2, 1009。 好吧,那么关于2018的倍数都可以表示为  2k*1009*u.   那么要找有多少(x, y)有多少对。(例如:(1,2018)和(2018, 1)是两组).

设倍数为  w=2k*1009*u.   那么也就是 {(x, y)|  x=2k , y=1009u  }  和 { (x, y)| x=1009k, y=2u  }的方案数。

在这里我先放一张图:

由w=2k*1009*u和 图得, A= {x*y%2018==0事件};A就是1009倍数事件并上2的倍数。

主要思路就是,先求,{右边区域或者左边至少有一个2018的倍数和2018}  的方案数。

然后求   就没了。

好了:ac代码如下:

#include<iostream>
using namespace std;
#define ll long long
int main()
{
ll a, b, c, d;
while (cin >> a >> b >> c >> d)
{
ll ans = ;
ll k2018 = b / - a / ; ll u2018 = d / - c / ;    //求2018的倍数的个数
if (a % == ) ++k2018; if (c % == ) ++u2018;    //这里注意一下为什么这么写
ll k1009 = b / - a / ; ll u1009 = d / - c / ;    //求1009的倍数(包括了2018的倍数)
if (a % == )++k1009; if (c % == )++u1009;
ll k2 = b / - a / ; ll u2 = d / - c / ;               //求2的倍数
if (a % == )++k2; if (c % == )++u2;
k1009 -= k2018; u1009 -= u2018; k2 -= k2018; u2 -= u2018;//求1009的倍数并且不包括2018的倍数,2的倍数并且不包括2018的倍数
ans = k2018*(d - c + ) + u2018*(b - a + )-k2018*u2018;      //这里注意一下,因为(1,1)和(1,1)是相同的   
ans += k1009*u2 + u1009*k2;  
cout << ans << endl;
}
}

2018 湖南网络比赛题 HDU - 6286 (容斥)的更多相关文章

  1. HDU 1695 容斥

    又是求gcd=k的题,稍微有点不同的是,(i,j)有偏序关系,直接分块好像会出现问题,还好数据规模很小,直接暴力求就行了. /** @Date : 2017-09-15 18:21:35 * @Fil ...

  2. HDU 4135 容斥

    问a,b区间内与n互质个数,a,b<=1e15,n<=1e9 n才1e9考虑分解对因子的组合进行容斥,因为19个最小的不同素数乘积即已大于LL了,枚举状态复杂度不会很高.然后差分就好了. ...

  3. HDU 2841 容斥 或 反演

    $n,m <= 1e5$ ,$i<=n$,$j<=m$,求$(i⊥j)$对数 /** @Date : 2017-09-26 23:01:05 * @FileName: HDU 284 ...

  4. ACM-ICPC 2018 沈阳赛区网络预赛 G Spare Tire(容斥)

    https://nanti.jisuanke.com/t/31448 题意 已知a序列,给你一个n和m求小于n与m互质的数作为a序列的下标的和 分析 打表发现ai=i*(i+1). 易得前n项和为 S ...

  5. HDU 6270 Marriage (2017 CCPC 杭州赛区 G题,生成函数 + 容斥 + 分治NTT)

    题目链接  2017 CCPC Hangzhou Problem G 题意描述很清晰. 考虑每个家庭有且仅有$k$对近亲的方案数: $C(a, k) * C(b, k) * k!$ 那么如果在第$1$ ...

  6. 沈阳网络赛G-Spare Tire【容斥】

    17.64% 1000ms 131072K   A sequence of integer \lbrace a_n \rbrace{an​} can be expressed as: \display ...

  7. HDU 4059 容斥初步练习

    #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> ...

  8. LOJ6102「2017 山东二轮集训 Day1」第三题 【min-max容斥,反演】

    题目描述:输入一个大小为\(n\)的集合\(S\),求\(\text{lcm}_{k\in S}f_k\),其中\(f_k\)是第$$个Fibonacci数. 数据范围:\(n\le 5\times ...

  9. UOJ422. 【集训队作业2018】小Z的礼物 [min-max容斥,插头DP]

    UOJ 思路 由于没有代码和AC记录的支撑,以下思路可能有错. 看到全部取完,大概可以想到min-max容斥. 由于期望的表达式里面合法方案的个数是在分母里面的,所以可以想到把它记录在状态里. 然而由 ...

随机推荐

  1. 史上最全的 Python 3 类型转换指南

    int 支持转换为 int 类型的,仅有 float.str.bytes,其他类型均不支持. float -> int 会去掉小数点及后面的数值,仅保留整数部分. int(-12.94) # - ...

  2. 运行 svgatest 显示 mmap /dev/zero Permission denied 解决办法

    答案是我在这个网站上找到的: 执行 xset dpms force off 命令就可以解决掉这个问题. 再次运行 svgatest 程序,得到了预期的结果,perfect!

  3. [转]Windows下配置Node.js和Cordova

    本文转自:https://blog.csdn.net/weixin_37730482/article/details/74388056?locationNum=3&fps=1 本文讲解在win ...

  4. VS2015企业版专业版密钥

    亲测可用,有需要的可以mark一下! 专业版:HMGNV-WCYXV-X7G9W-YCX63-B98R2企业版:HM6NR-QXX7C-DFW2Y-8B82K-WTYJV

  5. ssh介绍

      一.SSH概念(百度) SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH ...

  6. [android] 安卓消息推送的几种实现方式

    消息推送的目的:让服务器端及时的通知客户端 实现方案 轮询:客户端每隔一定的时间向服务器端发起请求,获得最新的消息 特点:如果用在最新新闻通知上,效率就有点低了,技术简单,好实现 应用场景:服务器端以 ...

  7. 【Dubbo&&Zookeeper】3、Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'问题解决方法

    转自:http://blog.csdn.net/gaoshanliushui2009/article/details/50469595 我们公司使了阿里的dubbo,但是阿里的开源网站http://c ...

  8. Vue学习资料

    1. {{ msg }}插值表达式. v-text:将数据插入到页面中,没有闪烁问题. v-cloak:通过style属性选择器的方式display:none:防止闪烁问题. v-html:将标签解析 ...

  9. Js调试中不得不知的Console

    在js调试中,大部分的前端人员都是采用console.log()方法来打印出调试的数据,但是很多人都不知道console这个对象有很多很实在的方法,本文就来介绍一下这些方法的使用. 一.console ...

  10. nginx报错zero size shared memory zone one

    为了限速,在虚拟主机中加上了一个参数:limit_conn one 1:结果导致重启nginx报错: zero size shared memory zone "one"解决办法是 ...