HDU 5701 中位数计数
2016-05-23 11:00
381 查看
暴力。
#include<cstdio> #include<cstring> #include<cmath> #include<map> #include<vector> #include<algorithm> using namespace std; const int maxn=8000+10; int n; int a[maxn],b[maxn]; int L[17000],R[17000]; vector<int>ans; int main() { while(~scanf("%d",&n)) { for(int i=1; i<=n; i++) scanf("%d",&a[i]); ans.clear(); for(int i=1; i<=n; i++) { memset(b,0,sizeof b); for(int j=1; j<=n; j++) { if(a[j]<a[i]) b[j]=-1; else if(a[j]>a[i]) b[j]=1; } memset(L,0,sizeof L); memset(R,0,sizeof R); for(int j=i-1; j>=1; j--) { b[j]=b[j]+b[j+1]; L[b[j]+8000]++; } for(int j=i+1; j<=n; j++) { b[j]=b[j]+b[j-1]; R[b[j]+8000]++; } int tot=0; for(int j=-8000; j<=8000; j++) tot=tot+L[j+8000]*R[-j+8000]; tot=tot+L[0+8000]; tot=tot+R[0+8000]; ans.push_back(tot+1); } for(int i=0; i<ans.size(); i++) { printf("%d",ans[i]); if(i<ans.size()-1) printf(" "); else printf("\n"); } } return 0; }
相关文章推荐
- 项目中某个页面强制横屏
- log4j.properties配置详解
- Linux基础----vi操作
- 182. Duplicate Emails
- Android蓝牙串口连接总结
- 读大型网站技术架构一书 总结(1)
- iOS学习之——iOS 视图控制对象的生命周期
- 用几句话实现意想不到的功能2(被忽略的TextView属性)
- java入门、java学习:如何理解Java面向对象
- VS2010使用c++、gSOAP创建WebService 图文教程
- String、StringBuffer与StringBuilder区别
- 大数对整数的相除、取模、相乘运算
- 提取不重复的整数
- HDU 5700 区间交
- Souerce 之 图片格式
- picasson图片加载
- numpy之文件存取
- opencv学习笔记---hsv颜色空间
- Spark自定义分区(Partitioner)
- 关于扫描二维码下载app功能实现方法