【codevs3324】新斯洛克
本着快noip了,要复习一下基础算法的原则,去找了到分治的题目……结果……这题真是……好吧确实算是分治……
这题灰常巧妙,n^2贼好想,但是怎么压成nlogn就挺有难度的……不看题解真心想不到居然还可以这么玩……
因为他说求平均数大于m的所有区间,也就是说,如果把每个数都减去m,其区间和大于0的就是我们要找的区间之一,所以先预处理一下,把每一个数先减去m,求前缀和,如果s[r]-s[l-1]大于0就ans++,但是这样明显n^2,所以我们需要更高效的找满足i<=j&&s[j]-s[i-1]>0,这个性质是不是很像逆序对呢,所以可以归并排序nlogn找(我第一次看到这种想法也是懵逼了,城里人真会玩qwq)
记得排序从0开始,不然会错
#include<iostream>
#include<cstdio>
using namespace std;
long long ans;
int n,m,qwq[100010],su[100010],cun[100010];
inline void m_st(int l,int r)
{if(l>=r)return;int mid=l+r>>1,t1=l,t2=mid+1,t3=l-1;m_st(l,mid),m_st(mid+1,r);while(t1<=mid&&t2<=r){if(su[t1]<su[t2])cun[++t3]=su[t1++],ans+=r-t2+1;elsecun[++t3]=su[t2++];}while(t1<=mid)cun[++t3]=su[t1++];while(t2<=r)cun[++t3]=su[t2++];for(int i=l;i<=r;i++)su[i]=cun[i];
}
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)scanf("%d",&qwq[i]),qwq[i]-=m,su[i]=su[i-1]+qwq[i];m_st(0,n);cout<<ans;
}
转载于:https://www.cnblogs.com/Loi-dfkdsmbd/articles/7642707.html
【codevs3324】新斯洛克相关推荐
- Codevs3324 新斯诺克
题目描述 Description 斯诺克又称英式台球,是一种流行的台球运动.在球桌上,台面四角以及两长边中心位置各有一个球洞,使用的球分别为1 个白球,15 个红球和6 个彩球(黄.绿.棕.蓝.粉红. ...
- 达尔豪斯计算机科学专业排名,达尔豪斯大学专业排名 看看你的专业排第几
在中国国内填报志愿的时候,很多学生会提前看学校的排名以及自己所要报考的专业排名情况.而出国留学的时候同样如此,有的学生在高中毕业后申请去加拿大留学,加拿大著名院校有很多,部分学生特别关注达尔豪斯大学, ...
- 2023联考管综论说文阅卷标准及提分计划:附2010-2022年真题
越是临近黎明,越是黑暗! 距离今年的全国研究生考试只有四十来天,接下来的复习节奏该如何定?对很多考生而言可能已经进入一种混沌状态,不知身在何处.但有一点需要明确,最后的 ...
- Software knowledge Encyclopedia:extjs是一种软件,自动生成行号,支持checkbox全选
extjs是一种软件.自动生成行号,支持checkbox全选,动态选择显示哪些列,支持本地以及远程分页,可以对单元格按照自己的想法进行渲染,这些也算可以想到的功能. 功能丰富,无人能出其右. 无论是界 ...
- 产品经理进修第一天 产品经理的定位和合作
开篇词 | 打造千万用户的世界级产品 每次朋友聚会,甭管是高雅的奶酪红酒派对还是啤酒撸串,大家一见到我,总是会眉飞色舞地跟我吐槽,说我们刚刚发布的产品哪里哪里不好用,或者哪里哪里好玩得不得了:甚至和六 ...
- 国家对应下拉列表 相应的 js特效
<!--#include file="conndb.asp"--> <HTML> <HEAD> <TITLE>adwordschin ...
- 十大iOS体育游戏评点
生命在于运动.出于对力与美的本能崇拜,各种体育运动项目也拥有各自庞大的拥趸.闲暇之余,呼朋唤友,踢球打球,既加深友谊又强身健体,所以也是很多人热衷的业余爱好之一.但是随着生活节奏的加快,工作压力的加大 ...
- fastreport 打印有 demo version字样_噬神者3免费试玩DEMO试玩 | 伊迪丝芬奇的记忆将登陆SWITCH...
抖音网红款流光手机充电线13.8元 苹果安卓Typec三款可选 复制,¥m8aPY5okFcU¥,打开手机淘宝app自动识别购买 <噬神者3>免费试玩DEMO实机试玩视频 万代之前宣布将会 ...
- 人工智能及其应用——第二章学习笔记(上)
人工智能及其应用 第二章 知识表示方法 目前常用的知识表示方法有:状态空间法.问题归约法.谓词逻辑.语义网络.本体技术等 对于传统人工智能问题,任何比较复杂的求解技术都离不开两方面的内容----表示与 ...
最新文章
- 那时刚毕业的我,曾参与惊心动魄 3Q 大战
- hdu(1069)——Monkey and Banana(LIS变形)
- 数字证书应用综合揭秘(包括证书生成、加密、解密、签名、验签)
- 【SpringMVC 之应用篇】 2_SpringMVC 的传参问题
- python实现剑指offer删除链表中重复的节点
- mybatis和hibernate的区别---Mybatis的学习笔记(四)
- kotlin中mainactivity无法直接调用xml中的控件_使用52North 客户端接口调用OGC WPS服务...
- linux标准I/O——标准I/O介绍
- Python 线程优先队列 PriorityQueue - Python零基础入门教程
- nagios mysql 监控_nagios监控mysql
- 软件测试--数据库基础知识
- nginx: too many open files
- 经典问题解析五(五十五)
- js时间戳转化成日期格式
- RGB与16进制颜色值的相互转换
- 计算机职业规划范文300字,【职业规划300字范文】_职业规划范文300字
- Java-你知道String为什么不可变吗?
- 200多个JS小技巧
- Python : 7-6 三天打鱼两天晒网 (15 分)
- 手机电视的概念及其发展状况