一、内容

二、思路

  • 用差分数组算出每个点总共被包含了几次,比如1-4就等于1-4区间的数组都加上1。这样a数组最终保存的就是装了这个点总共被覆盖几次。
  • 由于每次只能选3条线段,所以数组里面每个点的值必须>=3才符合要求,要后从求一个c3a[i], a[i]表示这个点覆盖的次数,从里面能选出3条线段覆盖的种数。
  • 对所有点都求一次组合数,然后所有的组合数相加 / c3m 就是结果了。由于可能不能整除,所以还要求一次gcd。
    -note: 当m <= 2 时,直接输出0,因为都不满足。

三、代码

import java.io.PrintWriter;
import java.util.Scanner;public class M_蒜头君的玩具 {static int[] a = new int[50005];static int[] d = new int[50005];static int n, m, l, r;static long x, y;static PrintWriter out = new PrintWriter(System.out);public static void main(String[] args) {Scanner sc = new Scanner(System.in);n = sc.nextInt();m = sc.nextInt();for (int i = 1; i <= m; i++) {l = sc.nextInt();r = sc.nextInt();d[l] += 1;d[r + 1] -= 1;}for (int i = 1; i <= n; i++) {a[i] = d[i] + a[i - 1];if (a[i] >= 3) {x += c(a[i]);}}y = c(m);if (x == 0 || m <= 2) {out.println(0);} else {long gcd = gcd(x, y);x /= gcd;y /= gcd;if (x % y == 0) {out.println(x / y);} else {out.println(x + "/" + y);}}  out.close();}static long gcd(long a, long b) {if (b == 0) return a;return gcd(b, a % b);}static long c(long m) {return m * (m - 1) * (m - 2) / 6;}
}

[Java] 计蒜客---蒜头君的玩具相关推荐

  1. 计蒜客 - 蒜头君的任务

    计蒜客 蒜头君的任务 题目描述 蒜头君的上司给蒜头君布置了一个任务,蒜头君维护一个数列,要求提供以下两种操作: 查询操作. 语法:Q L 功能:查询当前数列中末尾 L L L 个数中的最大的数,并输出 ...

  2. 计蒜客--蒜头君的新游戏

    1000ms  131072K 工作空闲之余,蒜头君经常带着同事们做游戏,最近蒜头君发明了一个好玩的新游戏:n 位同事围成一个圈,同事 A 手里拿着一个兔妮妮的娃娃.蒜头君喊游戏开始,每位手里拿着娃娃 ...

  3. 计蒜客-蒜头君回家(bfs)

    蒜头君要回家,但是他家的钥匙在他的朋友花椰妹手里,他要先从花椰妹手里取得钥匙才能回到家.花椰妹告诉他:"你家的钥匙被我复制了很多个,分别放在不同的地方." 蒜头君希望能尽快回到家中 ...

  4. 计蒜客--蒜头君回家

    蒜头君要回家,但是他家的钥匙在他的朋友花椰妹手里,他要先从花椰妹手里取得钥匙才能回到家.花椰妹告诉他:"你家的钥匙被我复制了很多个,分别放在不同的地方." 蒜头君希望能尽快回到家中 ...

  5. 计蒜客 蒜头君的训练室

    问题描述 蒜头君的训练室有 N 个站点,另外有 M 条单向边连接这些站点.第 i 条路从 Si站到 Ei站,有高度为 Hi的围栏,蒜头君是需要跳跃的.  现在蒜头君们有 T 个任务要完成.第 ii 个 ...

  6. 计蒜客 蒜头君学英语

    问题 蒜头君快要考托福了,这几天,蒜头君每天早上都起来记英语单词.花椰妹时不时地来考一考蒜头君:花椰妹会询问蒜头君一个单词,如果蒜头君背过这个单词,蒜头君会告诉花椰妹这个单词的意思,不然蒜头君会跟花椰 ...

  7. 计蒜客 蒜头君的购物口袋2 01背包问题

    蒜头君去超市购物,他有一只容量为 V 的购物袋,同时他想买n 件物品,已知每件物品的体积 ivi​和重要度pi​.蒜头君想知道,挑选哪些物品放入购物袋中,可以使得买到的物品重要度之和最大,且物品体积和 ...

  8. 计蒜客- 蒜头君的工厂

    E 蒜头君的工厂需要生产 n 个产品,每个产品会在记录本上记录开始生产的时间 x 以及完成生产的时间 y. 现在蒜头君拿到这本记录本以后想知道最多有多少件产品同时在生产线上生产. 注意:在同一时刻总是 ...

  9. 计蒜客 蒜头君的数轴

    不考虑某个区间,其他区间必须距离相等,也就是要划分为距离为最大公约数. 那么如何快速求解任意$n-1$个区间的最大公约数?用l[i]表示前i个数的最大公约数,r[i]表示后$(n-i)$个区间的最大公 ...

最新文章

  1. python开源人脸识别库识别率达99_Python的开源人脸识别库:离线识别率高达99.38%...
  2. 【以太坊】搭建测试网络之ubuntu系统安装node.js
  3. 字节/阿里/ 百度2021年Java岗发布+最新内部面试题
  4. 图解TCP四次握手断开连接
  5. 【算法随记一】Canny边缘检测算法实现和优化分析。
  6. Oracle----date
  7. 【转】SharePoint 2013中修改windows 活动目录(AD)域用户密码的WebPart(免费下载)
  8. Git 少用 Pull 多用 Fetch 和 Merge
  9. php moodle mysql_PHP+XAMPP+MYSQL:从MOODLE数据库提取数据并利用jpgraph生成柱状成绩对比图...
  10. scrapy 伪装代理和fake_userAgent的使用
  11. “去QE”时代下,QE如何破茧重生?
  12. python训练营 朋友圈点赞收费吗_微信朋友圈点赞,是不是扣话费?有人给
  13. matlab温室,科学网—用MATLAB建立中国部门温室气体排放的关联模型 - 计军平的博文...
  14. javaweb解决get请求中文乱码问题
  15. canvas :五角星的代码实现
  16. 文本居中(内容居中)
  17. 微信公众平台开发【素材管理】上传临时素材
  18. JDK11变化详解JDK8升级JDK11详细指南
  19. k8s踩坑记录——证书一年有效期
  20. 中国剩余定理 (51nod 1079)

热门文章

  1. axure9怎么让页面上下滑动_Axure制作:页面上下滑动时的菜单栏悬浮吸顶效果
  2. 基于HTML+CSS+JS的学堂在线首页静态页面源码
  3. uniapp微信小程序如何返回上一页的左上角小房子的坑
  4. jvm jstack 命令
  5. Java反射详解及作用
  6. c语言孪生素数问题_Problem C: 孪生素数
  7. Java线程池参数详解
  8. 网站图标如何设置详细过程
  9. java基础第十九篇之Xml
  10. RabbitMq原理及应用