【链接】 我是链接,点我呀:)

【题意】

题意

【题解】

把a[i]处理成前缀和
离散化.
枚举i从1..n假设a[i]是区间和的a[r]
显然我们需要找到a[r]-a[l]

【代码】

#include <bits/stdc++.h>
#define ll long long
using namespace std; const int N = 2e5; int n;
ll t;
ll a[N+10];
ll b[N*2+10];
map<ll,int> dic,dic1; int lowbit(int x){
return x&(-x);
} ll get_sum(int x){
ll ans = 0;
while (x>0){
ans = ans + b[x];
x = x-lowbit(x);
}
return ans;
} void add(int x){
while (x<=2*N+2){
b[x]= b[x]+1;
x = x + lowbit(x);
}
} int main(){
ios::sync_with_stdio(0),cin.tie(0);
cin >> n >> t;
dic[0] = 1;
dic[0+t] = 1;
for (int i = 1;i <= n;i++) {
cin >> a[i];
a[i]+=a[i-1];
dic[a[i]] = 1;
dic[a[i]+t] = 1;
}
int cnt = 0;
for (auto temp:dic){
cnt++;
dic1[temp.first] = cnt;
}
add(dic1[0+t]);
//cout<<dic1[0+t]<<endl;
ll fans = 0;
for (int i = 1;i <= n;i++){
ll temp1 = get_sum(cnt)-get_sum(dic1[a[i]]);
fans = fans + temp1;
add(dic1[a[i]+t]);
}
cout<<fans<<endl;
return 0;
}

最新文章

  1. oracle插入数据时解决和旧数据id的冲突
  2. 几年前做家教写的C教程(之五专讲结构体与文件操作)
  3. CentOS6.5 安装 jdk1.7
  4. MS Chart-按照数据库的最大最小时间设置X轴label.
  5. 使用 DllImport 属性
  6. 常用JS验证和函数
  7. JSP http头消息
  8. 【开源java游戏框架libgdx专题】-01-libgdx介绍
  9. (转载)lib 和 dll 的区别、生成以及使用详解
  10. 怎样使用docker不加sudo
  11. 写代码中遇到的问题(php接收不到传过来的json数据,php使用utf8的用法)
  12. SharePoint 门户网站的图片轮播-页面定制
  13. ChIP-seq 学习内容
  14. python基础成长之路四-基础数据类型方法
  15. 《汇编语言 基于x86处理器》第七章整数运算部分的代码
  16. POST 和 PUT 方法区别
  17. html文件引用本地js文件出现跨域问题的解决方案
  18. Linux ulimit命令详解
  19. domain是什么
  20. caffe Python API 之中值转换

热门文章

  1. Windows软件推荐
  2. 加密解密(3)Bob到CA申请证书过程
  3. Android偏好设置(6)应用和监听各偏好参数
  4. break跳出嵌套循环体
  5. Objective-c单例模式的正确写法--用dispatch 线程安全
  6. python vs java的rsa加密
  7. 移动端rem单位用法
  8. Toolbar自定义布局
  9. wordpress在撰写新文章界面的显示选项按钮点击无反应的解决办法
  10. 在SQLServer 2005附加SQLServer 2008数据库异常处理