题意:不说了。

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

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

思路:

在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数据类型之内置方法

    python有六大数据类型,分别为整型.字符串.列表.字典.元祖和集合,这些基本数据类型都内置了很多方法,接下来一一探寻. python中整型有两种:int和float 1 int 使用dir函数查看 ...

  2. 【Java深入研究】7、ThreadLocal详解

    ThreadLocal翻译成中文比较准确的叫法应该是:线程局部变量. 这个玩意有什么用处,或者说为什么要有这么一个东东?先解释一下,在并发编程的时候,成员变量如果不做任何处理其实是线程不安全的,各个线 ...

  3. 设计模式之访问者模式(Visitor )

    访问者模式是一种将数据操作和数据结构分离的设计模式,可以说是面向数据密集型的一种设计方式,数据的结构相对稳定,有明显的分层和分类,而对数据对象的相关操作进行分组.分析等二次加工,这些操作都是由访问者来 ...

  4. 两个inline-block消除间距和对齐(vertical-align)

    一.神奇的两个inline-block 很初级的问题,无聊决定写一个故事. 故事的主人公很简单,两个inline-block元素.代码如下,为了看起来简单明了,写得很简陋.效果图如右.发现有两个问题. ...

  5. HDU5037(SummerTrainingDay01-C)

    Frog Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Subm ...

  6. 大家好,我是一个热爱编程的大二在读生,今天来移植一下CSDN上的博客

    今天开了博客园,将原来再CSDN上的博客移植一下,嘿嘿嘿.

  7. “一切都是消息”--iMSF(即时消息服务框架)之【发布-订阅】模式

    MSF的名字是 Message Service Framework 的简称,由于目前框架主要功能在于处理即时(immediately)消息,所以iMSF就是 immediately Message S ...

  8. loadrunner 脚本开发-文件下载

    脚本开发-文件下载 by:授客 QQ:1033553122 下载简介 对 HTTP协议来说,无论是下载文件或者请求页面,对客户端来说,都只是发出一个GET请求,并不会记录点击后的“保存”.“另存为操作 ...

  9. css,响应鼠标事件,文字变色

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. JS代码段:返回yyyy-mm-dd hh:mm:ss

    最近做项目的时候正好用到,本着能抄就抄的心态去百度搜索现成的代码, 没想到抄下来的好几个都是错的,要么getMonth没有加1,要么10以下的数字前面没有加0, 我真是日了狗了,这次把写好的正确的直接 ...