【BZOJ】1303 [CQOI2009]中位数图 建模
来源:互联网 发布:数据挖掘图片 编辑:程序博客网 时间:2024/06/06 17:29
题目传送门
这题最主要的思想就是建模,对于每一个数a[i],建立一个c数组:
- 若a[i]<b,则c[i]=-1。
- 若a[i]=b,则c[i]=0,用一个变量wz记录当前的i。
- 若a[i]>b,则c[i]=1。
之后我们再对c数组做一遍前缀和,然后枚举两个位置i和j,设i<j,若c[i]=c[j],则答案+1。
因此,我们设k=0->wz-1,统计每个c[k]的出现次数,然后再设k=wz->n,ans+=c[k]出现的次数。
最后的ans就是答案咯。
注意:为了防止c[k]为下标时c[k]<0,不符合C++语言,因此我们可以把c[k]+=n。
附上AC代码:
#include <cstdio>using namespace std;int n,m,x,c[100010],t[200010],ans,wz;int main(void){scanf("%d%d",&n,&m);for (int i=1; i<=n; ++i){scanf("%d",&x);if (x<m) c[i]=-1;if (x==m) c[i]=0,wz=i;if (x>m) c[i]=1;c[i]+=c[i-1];}for (int i=0; i<wz; ++i) ++t[c[i]+n];for (int i=wz; i<=n; ++i) ans+=t[c[i]+n];printf("%d",ans);return 0;}
0 0
- 【BZOJ】1303 [CQOI2009]中位数图 建模
- 【BZOJ 1303】 [CQOI2009]中位数图
- bzoj 1303 [CQOI2009]中位数图
- BZOJ 1303 [CQOI2009]中位数图
- 【BZOJ 1303】 【CQOI2009】中位数图
- BZOJ 1303: [CQOI2009]中位数图
- bzoj 1303: [CQOI2009]中位数图
- BZOJ 1303 [CQOI2009]中位数图
- BZOJ 1303 - [CQOI2009]中位数图 (技巧)
- BZOJ 1303: [CQOI2009]中位数图 计数,思维
- bzoj 1303: [CQOI2009]中位数图 (乱搞)
- 1303: [CQOI2009]中位数图
- 1303: [CQOI2009]中位数图
- BZOJ 1303 [CQOI2009] 中位数图 题解与分析
- BZOJ_P1303 [CQOI2009]中位数图(中位数)
- [BZOJ1303][CQOI2009]中位数图
- [BZOJ1303][CQOI2009]中位数图
- BZOJ1303[CQOI2009]中位数图
- APK瘦身之删除多余资源文件
- 二分搜索(JAVA & Python)
- FancyBox的使用技巧 (汇总)
- 设计模式之二:工厂方法模式
- python数字转字符串
- 【BZOJ】1303 [CQOI2009]中位数图 建模
- 2.里氏替换原则
- HoG特征以及SVM的配合
- Win7 64位下Python安装PIL图像处理库
- 蓝桥杯《操作格子》
- MFC程序、dos程序修改图标
- ajaxFileUpload.js上传图片插件,全浏览器兼容,规避json错误,带文件格式大小拦截
- 1+2+...n的平方和
- 利用ffmpeg进行摄像头提取视频编码为h264通过RTP发送数据到指定的rtp地址