题意:不说了。

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

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

思路:

在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. Umbraco 7 特点

    Umbraco 7 features at a glance The backend is mainly built on .NET C# MVC. There are some leftovers ...

  2. 简单JAVA爬虫51Jobs

    使用Jsoup工具,它是一个HTML解析器,可以直接直接解析某个地址或者HTML文件.还可 通过Dom,CSS以及类似JQuery的操作方法操作数据. Jsoup官方文档地址:https://jsou ...

  3. c# 获取客户端文件

    /// <summary> /// 获取有效客户端文件控件集合,文件控件必须上传了内容,为空将被忽略, /// 注意:Form标记必须加入属性 enctype="multipar ...

  4. ECMAScript 引用类型

    Object对象 新建对象 var obj = new Object() var obj ={} var obj={age:23} ... hasOwnProperty(property) 方法 va ...

  5. java连接OPC之——Windows7 With SP1 网络OPC的DCOM配置

    由于 OPC(OLE for Process Control)建立在 Microsoft 的 COM(COmponent Model)基础 上,并且 OPC 的远程通讯依赖 Microsoft 的 D ...

  6. Python 利用字典实现类似 java switch case 功能

    def add(): print('add') def sub(): print('sub') def exit(): print('exit') choice = { '1' : add, '2' ...

  7. 1145.cn 百度MIP适配实例

    MIP,全称Mobile Instant Pages(移动端即时页面),是百度推出的一套移动端网页开放技术标准.网站移动端页面统计MIP改造,能实现页面缓存,从而达到移动网页加速效果. 百度官方已经明 ...

  8. Python 关于Python函数参数传递方式的一点探索

    关于Python函数参数传递方式的一点探索 by:授客 QQ:1033553122 实践代码 #!/usr/bin/env python # -*- coding:utf-8 -*- __author ...

  9. [20171225]查看并行执行计划注意的问题.txt

    [20171225]查看并行执行计划注意的问题.txt --//如果使用dbms_xplan.display_cursor查看并行执行计划注意一些问题,通过例子说明: 1.环境: SCOTT@book ...

  10. linux服务器系统盘坏且系统盘为软raid的修复方法

    1 需要换新盘的情况 1.1 一块盘grub损坏修复 一块盘grub损坏修复(可通过另一块盘进入系统的情况).更换硬盘的方式,可以热插拔,也可以服务器断电后更换,但如果是热插拔,可能会导致盘符变更.坏 ...