传送门:http://www.usaco.org/index.php?page=viewproblem2&cpid=91

这一题我很快的想出了,把>= x的值改为1,< x的改为-1,这样,某一段连续区间的和若非负,则这段区间符合题意。我连这个都想到了却没想到要去求逆序对!!!天呐,我真是太迷了!!

前缀和+逆序对。

逆序对就不解释了,该归并的归并,Fenwick Tree的Fenwick Tree,但是对于此题有一个O(n)的算法,仅限于求此题的逆序对!鉴于这一题值域范围小,而且相邻的两个前缀和只会相差1,所以可以针对这个特点设计算法,详见代码(真的不好说...)

#include <cstdio>
#include <cstring> const int maxn = 100005, zero = 100000; int n, s, a, x;
long long ans, f[maxn << 1], t; int main(void) {
freopen("median.in", "r", stdin);
freopen("median.out", "w", stdout);
scanf("%d%d", &n, &x);
ans = (long long)n * (long long)(n + 1) >> 1;
f[zero] = 1;
for (int i = 1; i <= n; ++i) {
scanf("%d", &a);
if (a >= x) {
++s;
t -= f[s + zero];
}
else {
t += f[s + zero];
--s;
}
++f[s + zero];
ans -= t;
}
printf("%I64d\n", ans);
return 0;
}

  代码中f[i]表示这之前,i这个值出现了几次。t表示的是以本次的i为结尾的逆序对数。

[USACO 2011 Nov Gold] Above the Median【逆序对】的更多相关文章

  1. [USACO 2011 Nov Gold] Cow Steeplechase【二分图】

    传送门:http://www.usaco.org/index.php?page=viewproblem2&cpid=93 很容易发现,这是一个二分图的模型.竖直线是X集,水平线是Y集,若某条竖 ...

  2. 【POJ3612】【USACO 2007 Nov Gold】 1.Telephone Wire 动态调节

    意甲冠军: 一些树高给出.行一种操作:把某棵树增高h,花费为h*h. 操作完毕后连线,两棵树间花费为高度差*定值c. 求两种花费加和最小值. 题解: 跟NOIP2014 D1T3非常像. 暴力动规是O ...

  3. [USACO 2011 Dec Gold] Threatening Letter【后缀】

    Problem 3: Threatening Letter [J. Kuipers, 2002] FJ has had a terrible fight with his neighbor and w ...

  4. [USACO 2011 Dec Gold] Cow Calisthenics【二分】

    Problem 1: Cow Calisthenics [Michael Cohen, 2010] Farmer John continues his never-ending quest to ke ...

  5. USACO 2008 Nov Gold 3.Light Switching 线段树

    Code: #include<cstdio> #include<algorithm> #include<cstring> using namespace std; ...

  6. 【JZOJ1922】【Usaco 2005 NOV Gold】小行星群

    题目描述 Bessie想驾驶她的飞船穿过危险的小行星群,小行星群是一个N×N的网格(1 <= N <= 500),在网格内有K个小行星(1 <= K <= 10,000). 幸 ...

  7. 【树状数组逆序对】USACO.2011JAN-Above the median

    [题意] 给出一串数字,问中位数大于等于X的连续子串有几个.(这里如果有偶数个数,定义为偏大的那一个而非中间取平均) [思路] 下面的数据规模也小于原题,所以要改成__int64才行.没找到测试数据, ...

  8. USACO翻译:USACO 2013 NOV Silver三题

    USACO 2013 NOV SILVER 一.题目概览 中文题目名称 未有的奶牛 拥挤的奶牛 弹簧牛 英文题目名称 nocow crowded pogocow 可执行文件名 nocow crowde ...

  9. BZOJ_2058_[Usaco2010 Nov]Cow Photographs_逆序对

    BZOJ_2058_[Usaco2010 Nov]Cow Photographs_逆序对 题意: 奶牛的图片 Farmer John希望给他的N(1<=N<=100,000)只奶牛拍照片, ...

随机推荐

  1. weblogic线程阻塞性能调优(图解)

    转自:http://blog.csdn.net/z69183787/article/details/12647539 声明:出现这个问题有程序方面.网络方面.weblogic设置方面等等原因,此文章主 ...

  2. 新手玩个人server(阿里云)续二

    小二班一番厮杀:那英四强诞生:大家闺秀,小家碧玉.窈窕淑女,妍姿俊俏 .不解释! ?不行! 陈冰,李嘉格,刘明湘.张碧晨.大多数的时候,仅仅要脸好看,一切都那么自热而然的顺理成章. 尽管网上骂声四起, ...

  3. BloomFilter学习

    看大数据面试题,看到BloomFilter,找了篇文章学习一下: http://www.cnblogs.com/heaad/archive/2011/01/02/1924195.html Bloom ...

  4. centos7下cp -rf总是提示覆盖的解决办法

    发现每次执行cp命令,其实是执行了cp -i命令的别名,因此无论怎么输入都提示是否覆盖. cat ~/.bashrc,有“alias cp='cp -i'”,难怪如此!!! 添加#号,#alias c ...

  5. Codefoces 436 B. Om Nom and Spiders

    纯属练习JAVA.... B. Om Nom and Spiders time limit per test 3 seconds memory limit per test 256 megabytes ...

  6. 题目1011:最大连续子序列 O(n)

    题目大意:给出一系列的数字.要求你输出这些数字的最大连续和,并输出构成这个最大连续和的第一个数和最后一个数 解题思路:用一个变量维护最大连续和 假设当前这个变量小于0的话,就表示这个变量仅仅会拉低连续 ...

  7. js 计算两个日期之间 相差几年几月几日

    1.计算日期差 Mine.vue <!-- 我的 --> <template> <div> <!-- 标题栏 --> <x-header :lef ...

  8. 给工作赋予的新意义——Leo鉴书78

    现代社会学三大奠基人有两位名字里有"马克思",他们都是德国人.当中一位就是写<资本论>的卡尔•马克思,另一位就是<新教伦理与资本主义精神>的作者马克思•韦伯 ...

  9. MFC程序打开文件对话框出错的问题解决

    前几天从网上下了个图像分析的mfc小程序,是VC6的 用VC6在本地编译生成都没问题.执行起来弹出一个未处理的错误,程序崩溃退出. 想起来原来遇到过打开文件对话框方面的问题,当时项目时间紧张未能深究. ...

  10. linux document and directory find

    http://suchalin.blog.163.com/blog/static/55304677201062924959497/ Linux 查看文件夹大小及文件数量命令 2010-07-29 14 ...