【问题描述】
有N个数,随机选择一段区间,如果这段区间的所有数的平均值在[l,r]中则
你比较厉害。求你比较厉害的概率。
【输入格式】
第一行有三个数N,l,r,含义如上描述。
接下来一行有?个数代表每一个数的值。
【输出格式】
输出一行一个分数 a/b
代表答案,其中a,b互质。如果答案为整数则直接输出该
整数即可。
【样例输入 1】
4 2 3
3 1 2 4
【样例输出 1】
7/10
【样例输入 2】
4 1 4
3 1 2 4
【样例输出 2】
1
【样例解释】
塔外面有棵树。
【数据规模与约定】
对于30%的数据,1<=N<=10^4.
60%的数据,1 ≤ N≤ 10 5 。
对于100%的数据,1 ≤ N ≤ 5× 10 5 ,0 < l ≤ r ≤ 100。

 1 #include<cstdio>
 2 #include<cstdlib>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 #ifdef unix
 7 #define LL "%lld"
 8 #else
 9 #define LL "%I64d"
10 #endif
11 #define lb(x) ((x)&(-(x)))
12 const int maxn=500010;
13 int n,l,r,y[maxn],z[maxn],w[maxn],x[maxn];
14 bool cmp(int a,int b)
15 {
16     return z[a]>z[b];
17 }
18 void insert(int p)
19 {
20     for (;p<=n;p+=lb(p))
21         w[p]++;
22 }
23 int query(int p)
24 {
25     int ans=0;
26     for (;p;p-=lb(p))
27         ans+=w[p];
28     return ans;
29 }
30 long long solve()
31 {
32     for (int a=1;a<=n;a++)
33         z[a]+=z[a-1];// 前缀和
34     for (int a=n+1;a>=2;a--)
35         z[a]=z[a-1];// 向后平移一位
36     z[1]=0;
37     n++;
38     for (int a=1;a<=n;a++)
39         x[a]=a;
40     sort(x+1,x+n+1,cmp);
41     memset(w,0,sizeof(w));
42     long long ans=0;
43     for (int a=1;a<=n;)
44     {
45         int b=a;
46         while (b<=n && z[x[b]]==z[x[a]])
47             b++;
48         for (int c=a;c<b;c++)
49             ans+=query(x[c]-1);
50         for (int c=a;c<b;c++)
51             insert(x[c]);
52         a=b;
53     }
54     n--;
55     return ans;
56 }
57 long long gcd(long long a,long long b)
58 {
59     if (!b) return a;
60     else return gcd(b,a%b);
61 }
62 int main()
63 {
64
65     scanf("%d%d%d",&n,&l,&r);
66     for (int a=1;a<=n;a++)
67         scanf("%d",&y[a]);
68     for (int a=1;a<=n;a++)
69         z[a]=y[a]-l;
70     long long ans=solve();
71     for (int a=1;a<=n;a++)
72         z[a]=r-y[a];
73     ans+=solve();
74     long long up=ans;
75     long long down=(long long)n*(n+1)/2;
76     up=down-up;
77     long long g=gcd(up,down);
78     up/=g;
79     down/=g;
80     if (up==0) printf("0\n");
81     else
82     {
83         if (down==1) printf("1\n");
84         else printf(LL "/" LL "\n",up,down);
85     }
86
87     return 0;
88 }

思路:转成区间和小于等于0,然后就是前缀和逆序对(和Codevs 1516 比较相似)

转载于:https://www.cnblogs.com/suishiguang/p/6035264.html

济南学习 Day2 T2 am相关推荐

  1. DataWhale数据分析组队学习——Day2

    DataWhale数据分析组队学习--Day2 引言 读取数据 数据预处理 总结 引言 今天是第二天,花了很多时间去搜索网页爬虫的资料,具体有几种方法,要考虑到从不同的网页抓取有不同的方法,一般用的方 ...

  2. 深度学习-第T2周——彩色图片分类

    深度学习-第T2周--彩色图片分类 深度学习-第P1周--实现mnist手写数字识别 一.前言 二.我的环境 三.前期工作 1.导入依赖项并设置GPU 2.导入数据集 3.归一化 4.可视化图片 四. ...

  3. python学习day2

    python学习day2 一.定义变量和给变量复制的原理 python定义变量的时候: 需要先申请内存,内存申请多大看数据需要多大,然后将数据保存到内存中再和变量进行关联. 重新给变量赋值的时候,会重 ...

  4. 济南学习 Day 5 T2 am

    車(Rook) [题目描述] 众所周知,車是中国象棋最厉害的棋子之一,他能吃到同一行或者同一列的其他棋子.車显然不能和車在一打起来,于是rly有借来了许多许多車在棋盘上摆了起来...... 他想知道, ...

  5. 2015 NOIP day2 t2 信息传递 tarjan

    信息传递 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.luogu.org/problem/show?pid=2661 Descrip ...

  6. 口语学习Day2:今天来说说我的小客厅!

    一直想正式报班学习口语,但时间原因只能在闲暇时间学习,在抖音上发现一个博主每天更新一些常用口语,说的很地道,内容很实用,准备跟着她学习了哈哈.!加油!!!下面是她的抖音号,如果有什么不便联系我,会删除 ...

  7. Python学习day2 while循环格式化输出运算符

    day2 运算符-while循环 1.while循环 while循环基本结构; while 条件: 结果 # 如果条件为真,那么循环则执行 # 如果条件为假,那么循环不执行 debug模式显示每一步运 ...

  8. FPGA入门 Xilinx暑期学校学习Day2

    早上的课程流程 1.SEA开发板简介 这部分没怎么听,自己用的EGO1,听起来SEA好用一些,而且本次课程的实验指导书用的也是那个板子,EGO1要多花点时间了. 2.FPGA开发流程 利用Vivado ...

  9. 路径规划算法学习Day2

    路径规划算法学习Day2-栅格法创建环境地图 前言 一.栅格法 1.原理 二.栅格法matlab实现 1.创建地图 2.完整代码 3.所生成地图 三.总结 前言 静态环境中机器人全局路径规划一直是路径 ...

最新文章

  1. mysql php 新手卡生成_PHPMaker(基于MYSQL数据库自动生成PHP 脚本的软件)
  2. TP框架表单验证 【包含ajax方法】
  3. linux c之通过消息队列实现进程通信
  4. linux vue node占用内存过大,vue 大型应用内存泄漏改造经验
  5. 4个mos管驱动的全桥电路原理_逆变电源中的三种保护电路讲解
  6. centos7 + python 2.7 + pip + openvswitch 杂项问题
  7. 用JAVA Excel API 实现对Excel表格的读写更新 (转)
  8. stm32通过SPI与adc124s021通信读取ad
  9. kettle 使用教程(入门)
  10. mybatis开发神器mybatis plus
  11. react图片剪裁react-cropper
  12. react hook(基础详解)
  13. 压在redis身上的三座大山
  14. office for Mac 2016/2019 百度云分享
  15. ENVI背景值nodata或NAN解决方法/ArcGIS栅格影像背景颜色去除
  16. python猜字游戏算法设计_python入门到实践-猜字游戏
  17. Opencv4.0学习记录(Day21 视频文件摄像头使用)
  18. 【递推】Ybt_平铺方案
  19. IDL常见问题与总结
  20. 机器学习参数|数学建模|自相关性

热门文章

  1. 如何捕获window.print点击打印或取消_视频:手把手教您如何优化喷墨波形
  2. 如何用计算机声卡,声卡是什么,详细教您怎么查看自己电脑的声卡
  3. 【干货】为什么都跑去用HTTPS了?
  4. mysql 数值 字符 优化,教你如何进行Mysql数据类型优化
  5. Kubernetes 稳定性保障手册 -- 极简版
  6. 第 6 期 Arthas 征文活动开启!(内附第 5 期获奖名单)
  7. 网页服务器日期格式,网站模板如何上传到主机上,用django定义自动插入的时间示格式如何调整...
  8. spark匹配html字段,Apache Spark中的高效字符串匹配
  9. 计算机专业考研知识大全,2019计算机专业考研备考知识点
  10. 计算机二级报名可以报两个地方吗,同学们注意了!!这4个地区计算机二级还可以报名!!...