链接:https://ac.nowcoder.com/acm/contest/1107/K
来源:2019牛客国庆集训派对day2

  • 题目描述
      Given a, b, c, d, find out the number of pairs of integers (x, y) where a ≤ x ≤ b ,c ≤ y ≤ d and x⋅y is a multiple of 2018.
  • 输入描述
    The input consists of several test cases and is terminated by end-of-file.
    Each test case contains four integers a, b, c, d.
  • 输出描述
    For each test case, print an integer which denotes the result.
  • 输入
    1 2 1 2018
    1 2018 1 2018
    1 1000000000 1 1000000000
  • 输出
    3
    6051
    1485883320325200
  • 备注
    1 ≤ a ≤ b ≤ 109,1 ≤ c ≤ d ≤ 109
    The number of tests cases does not exceed 104.

  题意:给两个区间,这两个区间内分别取一个数使得这两个数的乘积是 2018 的倍数。
  思路:2018 的因子有 1,2,1009,2018。我们将这些因子互相配对。
  (1k,2018k)
  (2k,1009k)
  (1009k,2k)
  (2018k,1k)
  其中存在重复的对数
  (2k,2018k)
  (1009k,2018k):这两个重复删除了一次(2018k,2018k)
  (2018k,2018k)
  (2018k,2k)
  (2018k,1009k):这两个重复删除了一次(2018k,2018k)
  对于因子的个数容斥的方法来求即可。

#include<bits/stdc++.h>
using namespace std;typedef long long ll;
const int Max_n = 1e6 + 10;int main() {int l1, r1, l2, r2;while(~scanf("%d%d%d%d", &l1, &r1, &l2, &r2)) {int cnt1_1 = r1 - (l1 - 1), cnt1_2 = r1 / 2 - (l1 - 1) / 2;int cnt1_1009 = r1 / 1009 - (l1 - 1) / 1009, cnt1_2018 = r1 / 2018 - (l1 - 1) / 2018;//cout<<cnt1_1<<" "<<cnt1_2<<" "<<cnt1_1009<<" "<<cnt1_2018<<endl;int cnt2_1 = r2 - (l2 - 1), cnt2_2 = r2 / 2 - (l2 - 1) / 2;int cnt2_1009 = r2 / 1009 - (l2 - 1) / 1009, cnt2_2018 = r2 / 2018 - (l2 - 1) / 2018;//cout<<cnt2_1<<" "<<cnt2_2<<" "<<cnt2_1009<<" "<<cnt2_2018<<endl;ll ans = (ll)cnt1_1 * (ll)cnt2_2018 + (ll)cnt1_2 * (ll)cnt2_1009 + (ll)cnt1_1009 * (ll)cnt2_2 +(ll)cnt1_2018 * (ll)cnt2_1;ans -= ((ll)cnt1_2 + (ll)cnt1_1009) * (ll)cnt2_2018;ans -= ((ll)cnt2_2 + (ll)cnt2_1009) * (ll)cnt1_2018;//ans+=(ll)cnt1_2018*(ll)cnt2_2018;//ans-=(ll)cnt1_1009*(ll)cnt2_2018;//ans-=(ll)(cnt1_2018)*(ll)cnt2_1009;ans += (ll)cnt1_2018 * (ll)cnt2_2018;printf("%lld\n", ans);}return 0;
}/**
* Copyright(c)
* All rights reserved.
* Author : Max_n
* Date : 2019-10-02-14.26.07
* Problem : 2018
*/

2019牛客国庆集训派对day2 K 2018(容斥)相关推荐

  1. 2019牛客国庆集训派对day2 K 2018

    我这里在原题目上面加了扩充 修改:将2018改为x(x不是很大 ,其他题面内容不变 方法:首先将x分解质因子,变为 x=p1e1∗p2e2∗...∗pnenx=p_{1}^{e1}*p_{2}^{e2 ...

  2. 2016湖南湘潭邀请赛 - 2019牛客国庆集训派对day6

    2016湖南湘潭邀请赛 - 2019牛客国庆集训派对day6 A - 2016 题意:求一个2阶矩阵的n次幂,对7取模的结果 思路:可以用上面介绍的10进制倍增的方法.也可以用 n 对2016取模,还 ...

  3. 2020牛客国庆集训派对day2 补题J

    2020牛客国庆集训派对day2 补题J:VIRUS OUTBREAK 题目描述 The State Veterinary Services Department recently reported ...

  4. 2020牛客国庆集训派对day2 H-STROOP EFFECT(英语题)

    2020牛客国庆集训派对day2 H-STROOP EFFECT(英语题) 题目 https://ac.nowcoder.com/acm/contest/7818/H 题意 这题目真的太难读懂了,赛后 ...

  5. 2020牛客国庆集训派对day2 AKU NEGARAKU

    来源:牛客网: 题目描述 1st Academy is an international leadership training academy based in Kuala Lumpur. Ever ...

  6. 2020牛客国庆集训派对day2 F题 Java大数处理

    题目: 链接:https://ac.nowcoder.com/acm/contest/16913/F 来源:牛客网 The following code snippet calculates the ...

  7. 2019牛客国庆集训派对day7 A 2016(数学)

    题干: 链接:https://ac.nowcoder.com/acm/contest/1112/A 来源:牛客网 给出正整数 n 和 m,统计满足以下条件的正整数对 (a, b) 的数量: 1 < ...

  8. 2020牛客国庆集训派对day2 MATRIX MULTIPLICATION CALCULATOR

    MATRIX MULTIPLICATION CALCULATOR 题意: 求两矩阵相乘 题解: 应该都学过把...矩阵相乘 矩阵相乘的前提是两个矩阵的列等于另一个矩阵的行 也就是cij=∑aik*bk ...

  9. 牛客国庆集训派对Day2: E. 数据排序(状压DP+记忆化搜索)

    E. 数据排序 题目描述 机器学习通常需要用到大量的人工标注好的数据进行训练.现在有这么一个数据集,有 N 个张照片,每张照片中都有一个模特.某个研究员想要训练一个机器学习算法,能够根据照片对模特的魅 ...

最新文章

  1. PowerDesigner中Stereotype的创建图解
  2. C4.5-Release8中Ross Quinlan对缺失值的处理
  3. VB6:通过ADO访问Oracle存储过程返回的结果集
  4. (组合数学笔记)格点路径问题分析求解
  5. tableview cell自适应撑高
  6. 电子元件 —— 继电器
  7. matlab cic设计,CIC滤波器设计
  8. AIDA64 Extreme Edition(硬件检测)多国语言绿色特别版
  9. Xmanager4注册码
  10. 数组和集合的区别及定义方式
  11. shenyu2.5.0对restful的path中文不支持,400错误解决
  12. 国产商用密码与国际密码对照
  13. 离线地图开发 支持 局域网内二次开
  14. 含论文基于JAVA户籍信息管理系统【数据库设计、论文、源码、开题报告】
  15. python 图片转换为ico图标
  16. DICOM标准中关于C-Find,运用StudyTime进行查找时无法查找到数据的问题
  17. 腾讯全球数字生态大会--散记
  18. 基础电子元器件介绍-4.二极管
  19. 冯小刚:对“伪民族化”的拨乱反正
  20. Student学员数据库-[学生信息]、[学生成绩]表

热门文章

  1. linux poweroff无法关机,linux关机重启六种方法(sysrq shutdown halt init ipmi poweroff)
  2. 自己动手搭建苹果推送Push服务器
  3. 北斗导航 | 北斗/GNSS相关数据下载:IGS/IGMAS/MGEX/DCB/brdc/gamit/bernese/rinex等
  4. (称重问题)假设你有8个球,其中一个略微重一些,但是找出这个球的惟一方法是将两个球放在天平上对比
  5. LaTeX Subfigure 中间添加垂直线
  6. Math.hypot()
  7. Outlook 2013 英文版 设置收信规则
  8. Android————一个简单记账本(Bookkeeping)
  9. C语言编程从键盘输入n
  10. 国内外优秀开源源码网站